向量派生类的复制构造函数

copy constructor of a vector-derived class

本文关键字:复制 构造函数 派生 向量      更新时间:2023-10-16

我有以下类。

class CA {
...
};
class CB: public vector<CA> {
...
};

我应该如何实现CB的复制构造函数?即

CB(CB& cb).

如何将cb的矢量的内容复制到中?

忽略从std::vector公开继承的问题,如果您的派生类型确实需要一个复制构造函数(例如,如果您正在管理动态分配的资源(,那么您可以使用构造函数初始化列表,如本例所示,其中Foo在继承层次结构中取代std::vector

#include <iostream>
struct Foo
{
  Foo() {}
  Foo(const Foo&) { std::cout << "Copy Foon";}
};
struct Bar : public Foo
{
  Bar() {}
  Bar(const Bar& b) : Foo(b) {}
};
int main()
{
  Bar b1;
  Bar b2(b1);
}