Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
STL映射与纯虚拟基类 我很久没有使用C++了。我试图显示一些多态行为: class func { public: virtual void print() = 0; }; class func1 : public func { public: void print () { cout << "FUNC 1" << endl; }; }; class func2 : public func { public: void print () { cout << "FUNC 2" << endl; }; }; static map<string,func *> myMap; static func1 f1 = func1 (); static func2 f2 = func2 (); myMap["func1"] = &f1; myMap["func2"] = &f2;_C++_Stl_Virtual_Abstract Base Class - Fatal编程技术网

STL映射与纯虚拟基类 我很久没有使用C++了。我试图显示一些多态行为: class func { public: virtual void print() = 0; }; class func1 : public func { public: void print () { cout << "FUNC 1" << endl; }; }; class func2 : public func { public: void print () { cout << "FUNC 2" << endl; }; }; static map<string,func *> myMap; static func1 f1 = func1 (); static func2 f2 = func2 (); myMap["func1"] = &f1; myMap["func2"] = &f2;

STL映射与纯虚拟基类 我很久没有使用C++了。我试图显示一些多态行为: class func { public: virtual void print() = 0; }; class func1 : public func { public: void print () { cout << "FUNC 1" << endl; }; }; class func2 : public func { public: void print () { cout << "FUNC 2" << endl; }; }; static map<string,func *> myMap; static func1 f1 = func1 (); static func2 f2 = func2 (); myMap["func1"] = &f1; myMap["func2"] = &f2;,c++,stl,virtual,abstract-base-class,C++,Stl,Virtual,Abstract Base Class,我希望: FUNC 1 FUNC 2 不确定这样做是否正确。当我编译代码时,会出现以下错误: test.cc:31: error: expected constructor, destructor, or type conversion before ‘=’ token test.cc:32: error: expected constructor, destructor, or type conversion before ‘=’ token 指的是以下几行: myMap["func1"]

我希望:

FUNC 1
FUNC 2
不确定这样做是否正确。当我编译代码时,会出现以下错误:

test.cc:31: error: expected constructor, destructor, or type conversion before ‘=’ token
test.cc:32: error: expected constructor, destructor, or type conversion before ‘=’ token
指的是以下几行:

myMap["func1"] = &f1;
myMap["func2"] = &f2;

谢谢。

表达式语句与赋值语句一样,只能进入函数内部

在C++11中,可以使用括号初始化来初始化静态映射:

static map<string,func *> myMap = {
    {"func1", &f1},
    {"func2", &f2}
};

如果可能的话,一个更好的想法可能是避免非平凡的全局变量;表达式语句,就像赋值语句一样,只能进入函数内部

在C++11中,可以使用括号初始化来初始化静态映射:

static map<string,func *> myMap = {
    {"func1", &f1},
    {"func2", &f2}
};

如果可能的话,一个更好的想法可能是避免非平凡的全局变量;表达式语句,就像赋值语句一样,只能进入函数内部

在C++11中,可以使用括号初始化来初始化静态映射:

static map<string,func *> myMap = {
    {"func1", &f1},
    {"func2", &f2}
};

如果可能的话,一个更好的想法可能是避免非平凡的全局变量;表达式语句,就像赋值语句一样,只能进入函数内部

在C++11中,可以使用括号初始化来初始化静态映射:

static map<string,func *> myMap = {
    {"func1", &f1},
    {"func2", &f2}
};


如果可能的话,一个更好的想法可能是避免非平凡的全局变量;它们常常带来痛苦。

做这些陈述
myMap[“func1”]=&f1
myMap[“func2”]=&f2出现在函数定义体之外?@πάνταῥεῖ 很可能是的,是的。我明白了,现在我的代码可以编译了。为什么它们必须在函数定义中?
static func1 f1=func1()应该是
静态func1 f1
@NeilKirk不是静态func1 f1=func1()合法C++代码?执行这些语句<代码> MYMAP [“函数1”] =和F1;<代码>,
myMap[“func2”]=&f2出现在函数定义体之外?@πάνταῥεῖ 很可能是的,是的。我明白了,现在我的代码可以编译了。为什么它们必须在函数定义中?
static func1 f1=func1()应该是
静态func1 f1
@NeilKirk不是静态func1 f1=func1()合法C++代码?执行这些语句<代码> MYMAP [“函数1”] =和F1;<代码>,
myMap[“func2”]=&f2出现在函数定义体之外?@πάνταῥεῖ 很可能是的,是的。我明白了,现在我的代码可以编译了。为什么它们必须在函数定义中?
static func1 f1=func1()应该是
静态func1 f1
@NeilKirk不是静态func1 f1=func1()合法C++代码?执行这些语句<代码> MYMAP [“函数1”] =和F1;<代码>,
myMap[“func2”]=&f2出现在函数定义体之外?@πάνταῥεῖ 很可能是的,是的。我明白了,现在我的代码可以编译了。为什么它们必须在函数定义中?
static func1 f1=func1()应该是
静态func1 f1
@NeilKirk不是静态func1 f1=func1()合法C++代码?