我正在编写一个应用程序,其中我将通过指向基类的指针访问几个派生类。我希望这些派生类之一在应用程序中包含它的邻居(也是基类类型)的指针向量,如下所示:
#include <vector>
class BaseClass
{
public:
BaseClass() { }
virtual ~BaseClass() { }
};
class DerivedClass : virtual public BaseClass
{
public:
DerivedClass() : BaseClass() { }
~DerivedClass() { }
private:
vector<BaseClass*> Neighbors;
};
但是,得到以下编译器错误:
example.cpp:16: error: ISO C++ forbids declaration of ‘vector’ with no type
example.cpp:16: error: expected ‘;’ before ‘<’ token
这甚至可能吗?如果可能,请有人指出我的错误!编译器应该知道刚刚声明的 BaseClass 是什么类型,实际上声明类型的成员是BaseClass Foo;
有效的,所以我不明白为什么向量无法识别 BaseClass*。
干杯!