是否可以“添加”到默认拷贝构造函数?

例如。对于本类(class):

class A
{
    public:
        int a;
        int* b;
};

我只想写
A::A(const A& rvalue):
    a(rvalue.a),
    b(new int(*(rvalue.b)))
{}

没有a(rvalue.a)部分。

(忽略错误/难看的代码以及可能的内存泄漏)

最佳答案

您所要求的是不可能的。声明自己的拷贝构造函数后,编译器将不会为您生成拷贝构造函数。这意味着您将无法简单地添加或扩充默认拷贝构造函数,因为它不存在。可以这么说,它全有还是全无。

关于c++ - 可以将 "add"设置为默认的拷贝构造函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6938222/

10-10 07:15