我知道很多关于拷贝构造函数的stackoverflow的例子。但是,我没有看到我的具体问题。
假设我有一个基类Base
,其定义如下:
class Base
{
public:
Base(const Base &other);
...
}
并且我有一个派生类Derived
,其定义如下:
class Derived
{
public:
Derived(const Base &other); //construct from base class
Derived(const Derived &other); //construct from derived class (copy constructor)
}
复制构造函数可以像这样定义吗?
Derived::Derived(const Derived &other) : Base(other) {...}
或者这不是C ++的好风格吗?如果没有,我如何使用更好的方法获得相同的结果?我的编译器(MSVC)似乎没有抱怨它。
答案 0 :(得分:1)
实施
String.Join<>
你必须创建基础构造函数:
Derived::Derived(const Derived &other) : Base(other) {...}