复制构造函数和复制赋值运算符?

时间:2017-03-07 04:47:58

标签: c++

string func()
{
string s;
//do something with s
return s;
}
string mystr=func();

(这不是C ++ 11) 在上面的示例中,我了解string的复制构造函数将在返回时被调用,但是,在此示例中,string的复制赋值运算符也将在mystr时调用得到它的价值?

2 个答案:

答案 0 :(得分:1)

string mystr=func();

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

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

string mystr;
mystr = func();

答案 1 :(得分:0)

没有。到目前为止您发布的代码不涉及string的任何形状,方式或形式的复制赋值运算符。