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; }; 声明抽象类向量的行在MS VS2005中导致此错误: error C2259: 'IFunnyInterface' : …
88
c++
stl
abstract-class