【发布时间】:2020-04-17 06:58:51
【问题描述】:
假设我有一个有几个成员变量的类。例如,在复制构造函数中,我想复制所有成员并做更多的工作。而不是显式复制成员变量,如何告诉编译器具有默认行为(复制成员变量)并执行函数体中的内容?
类似这样的:
class X
{
public:
// This constructor should copy all the members
// and also do what's inside the constructor's body.
X(const X& x) = default
{
// Do some work.
}
};
【问题讨论】:
-
如果你为它写了一个body,它就不再是一个默认的构造函数了。这是 C++ 的一个烦人的问题,如果能够做一个默认的副本 和 一点点额外的话会非常方便。我可以建议的最佳解决方法是在基类中使用默认构造函数,然后在继承自它的类的构造函数中做额外的工作
标签: c++ constructor default