string func()
{
string s;
//do something with s
return s;
}
string mystr=func();
(这不是C ++ 11)
在上面的示例中,我了解string
的复制构造函数将在返回时被调用,但是,在此示例中,string
的复制赋值运算符也将在mystr
时调用得到它的价值?
答案 0 :(得分:1)
string mystr=func();
不会调用复制赋值运算符。它使用复制构造函数初始化mystr
。
要调用复制赋值运算符,初始化和赋值必须是两个单独的语句。
string mystr;
mystr = func();
答案 1 :(得分:0)
没有。到目前为止您发布的代码不涉及string
的任何形状,方式或形式的复制赋值运算符。