私は長い間 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;
だから私の主な機能では、私が呼び出すとき:
myMap["func1"]->print();
myMap["func2"]->print();
私は期待します:
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;
ありがとうございました。