小编Rob*_*son的帖子

指向矢量的基类在派生类中

我正在编写一个应用程序,我将通过指向基类的指针访问几个派生类.我希望这些派生类中的一个包含一个指针向量,它是应用程序中的邻居(也是基类类型),如下所示:

    #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*.

干杯!

c++ vector multiple-inheritance derived-class

3
推荐指数
1
解决办法
643
查看次数

标签 统计

c++ ×1

derived-class ×1

multiple-inheritance ×1

vector ×1