Ian*_*Ian 2 c++ constructor copy
如果某些类不执行动态内存分配,则仅声明一个复制构造函数就足够了?
请参阅以下示例
代替:
class A
{
protected :
int a;
public:
A(const A &source)
{
a = source.a;
}
};
class B: public A
{
protected :
int b;
public:
B(const B &source): A(source)
{
b = source.b;
}
};
Run Code Online (Sandbox Code Playgroud)
使用:
class A
{
protected :
int a;
public:
A(const A &source);
};
class B: public A
{
protected :
int b;
public:
B(const B &source);
};
Run Code Online (Sandbox Code Playgroud)
第二种变体有时会引起问题吗?一些例子会有所帮助.
如果每个项目的简单逐项复制都可以解决问题,即,当您没有需要深度复制的指针时,除了初始化变量之外,构造函数中没有其他行为,您不需要完全声明一个拷贝构造函数.默认实现将为您执行此操作.