如果创建了复制构造函数,private
则在
情况1:没有错误,编译器不在乎复制构造函数是否在类中定义。
情况2:错误,复制构造函数是私有的,当它被制作时public
,它被省略了。
它是否直接优化了副本而没有注意到是否构造了构造函数private
?
#include <string>
using std::string;
class T
{
string s;
T(const T &obj):s(obj.s){}
public:
T(const string &str):s(str){}
};
int main()
{
T a = ("Copy Initialization"); //Case: 1
T b = T("Copy Initialization"); //Case: 2
}