如果拷贝构造函数是由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
}
在`Case:1`中,实际上并没有创建一个`T`类型的临时对象。你怎么能给它分配``````T`型`? – Mahesh 2011-01-09 14:17:21