我是初学者,当我无法理解时遇到了一个代码。任何人都可以解释下面使用vector派生基类的代码
class base{
public:
.
.
private :
.
.};
class derived :public vector<base *>
{
public:
};
答案 0 :(得分:0)
std::vector
是class 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*>
的所有成员变量和函数,并且可以有额外的东西(或甚至改进)除了这些。