假设我有一个包含一些字段的结构,我可能会弄乱它们(添加、删除)。
struct Something
{
int number;
int stuff[4];
//... many other things
Something(const Something& something, int newnumber) : number(newnumber)
{
//is there any way to default the rest to copy?
}
};
我没有声明一个复制构造函数(使用默认值),所以它显然可以处理任何基本情况(没有指针等)。但是,我也希望能够通过改变一件事来复制我的结构。这意味着我需要填写一个包含所有要复制的内容的初始化列表,并在每次我的结构内容更改时更改它。即使我未声明的复制构造函数可以方便地处理更改而无需我的干预。
有什么办法可以利用默认的复制构造函数,这样我就不必在每次弄乱我的结构内容时更改我的“一次更改复制”构造函数?
编辑:构造函数委托导致这些错误:
Something(const Something& something, int newnumber) : Something(something), number(newnumber) {}
对委托构造函数的调用应是唯一的成员初始化器
“编号”:已初始化