Rob*_*son 3 c++ vector multiple-inheritance derived-class
我正在编写一个应用程序,我将通过指向基类的指针访问几个派生类.我希望这些派生类中的一个包含一个指针向量,它是应用程序中的邻居(也是基类类型),如下所示:
#include <vector>
class BaseClass
{
public:
BaseClass() { }
virtual ~BaseClass() { }
};
class DerivedClass : virtual public BaseClass
{
public:
DerivedClass() : BaseClass() { }
~DerivedClass() { }
private:
vector<BaseClass*> Neighbors;
};
Run Code Online (Sandbox Code Playgroud)
但是,请获取以下编译器错误:
example.cpp:16: error: ISO C++ forbids declaration of ‘vector’ with no type
example.cpp:16: error: expected ‘;’ before ‘<’ token
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?如果有可能请有人指出我的错误!编译器应该知道BaseClass是什么类型,因为它刚刚被声明,事实上声明一个类型的成员BaseClass Foo;工作,所以我不明白为什么向量不能识别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
};
Run Code Online (Sandbox Code Playgroud)