2017-03-07 94 views
-1
string func() 
{ 
string s; 
//do something with s 
return s; 
} 
string mystr=func(); 

(这不是C++ 11) 在上面的例子,我明白,当它被返回,然而,在本实施例的string复制构造将被调用,将在string的拷贝赋值运算符也当mystr获得它的价值时被调用?复制构造函数和复制赋值运算符?

回答

1
string mystr=func(); 

不调用复制赋值运算符。它使用复制构造函数初始化mystr

要调用复制赋值运算符,初始化和赋值需要两个单独的语句。

string mystr; 
mystr = func(); 
0

不,您发布的代码迄今没有涉及任何形状,方式或形式的string的复制分配操作符。

相关问题