我正在编写一个应用程序,其中我将通过指向基类的指针访问多个派生类。我希望这些派生类之一在应用程序中包含它的邻居(也是基类类型)的指针 vector ,如下所示:
#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;
的成员有效,所以我不明白为什么 vector 不能识别 BaseClass*。
干杯!
最佳答案
你也没有输入 using namespace std;
, using std::vector
, 或 std::vector<...>...
#include <vector>
using std::vector; //choice 1
using namespace std; //choice 2
class BaseClass
{
public:
BaseClass() { }
virtual ~BaseClass() { }
};
class DerivedClass : virtual public BaseClass
{
public:
DerivedClass() : BaseClass() { }
~DerivedClass() { }
private:
std::vector<BaseClass*> Neighbors; //choice 3
};
关于c++ - 派生类中指向基类的指针 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269487/