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

时间:2013-02-26 10:26:58

标签: c++ vector constructor copy-constructor

我有以下课程。

class CA {
...
};

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

如何实现CB的复制构造函数?即,

CB(CB& cb).

如何复制cb矢量的内容?

1 个答案:

答案 0 :(得分:1)

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

#include <iostream>

struct Foo
{
  Foo() {}
  Foo(const Foo&) { std::cout << "Copy Foo\n";}
};

struct Bar : public Foo
{
  Bar() {}
  Bar(const Bar& b) : Foo(b) {}
};

int main()
{
  Bar b1;
  Bar b2(b1);
}