5
同样,默认拷贝构造函数是否在所有成员上调用拷贝构造函数?例如,如果一个类有一个非POD成员像这样:默认赋值运算符是否对所有成员调用operator =?
class A
{
std::string str;
};
...将默认的编译器生成的拷贝构造函数和赋值运算符的工作是否正确?他们会调用字符串的复制构造函数和operator=
或者他们是否只是成员变量str
的按位副本?
换句话说,是否有std::string
成员意味着这个类需要的用户实现的拷贝构造函数和赋值运算符?
“是的,编译器生成一个将正常工作。” - 即使是有const成员的类? –
@spin_eight那么复制或分配甚至不会编译。 –
@LuchianGrigore:其实,一个副本会编译。这项任务显然不会。 –