我有以下课程。
class CA {
...
};
class CB: public vector<CA> {
...
};
如何实现CB的复制构造函数?即,
CB(CB& cb).
如何复制cb矢量的内容?
答案 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);
}