使用vector继承基类

时间:2014-12-23 07:52:45

标签: c++ inheritance vector

我是初学者,当我无法理解时遇到了一个代码。任何人都可以解释下面使用vector派生基类的代码

class base{

public:
.
.
private :
.
.};

class derived :public vector<base *>
{

public:
};

3 个答案:

答案 0 :(得分:0)

std::vectorclass template。这意味着std::vector<base*>本身就是一个类 - 它是base*个对象的容器。转到derived的定义,您会看到derived是继承自父类std::vector<base*>的类。

答案 1 :(得分:0)

显然,类base是为向量的成员定义的;然后,使用类模板vector,这很可能来自C++ Standard Library。最后,定义了一个类derived,它继承自vector<base*>。这意味着derived的行为基本上与base的指针向量相同,但可能会添加或更改某些属性。如果不实际检查derived的实施情况,就无法告知这一点。

答案 2 :(得分:0)

向量是在STL标头<vector>中定义的模板容器,以及名称空间std的一部分。简单地说,它就像一个数组,只需添加一个新元素就可以改变它的大小。

就像在数组中存储某些数据类型的对象一样(例如.int,char或任何其他类型的对象等),您可以创建一个矢量来存储对象。

在您的情况下,vector<base*>,用于保存指向数据类型 base 的对象的指针。因为它是一个类, public 继承来自vector<base*>的派生类意味着派生类将具有来自vector<base*>的所有成员变量和函数,并且可以有额外的东西(或甚至改进)除了这些。