7
std :: vector <AbstractClass>を宣言できないのはなぜですか?
C#での開発にかなりの時間を費やした後、インターフェイスとして使用する目的で抽象クラスを宣言すると、この抽象クラスのベクトルをインスタンス化して子クラスのインスタンスを格納できないことに気付きました。 #pragma once #include <iostream> #include <vector> using namespace std; class IFunnyInterface { public: virtual void IamFunny() = 0; }; class FunnyImpl: IFunnyInterface { public: virtual void IamFunny() { cout << "<INSERT JOKE HERE>"; } }; class FunnyContainer { private: std::vector <IFunnyInterface> funnyItems; }; 抽象クラスのベクトルを宣言する行により、MSVS2005で次のエラーが発生します。 error C2259: 'IFunnyInterface' : cannot …
88
c++
stl
abstract-class