-1
string func()
{
string s;
//do something with s
return s;
}
string mystr=func();
(这不是C++ 11) 在上面的例子,我明白,当它被返回,然而,在本实施例的string
复制构造将被调用,将在string
的拷贝赋值运算符也当mystr
获得它的价值时被调用?复制构造函数和复制赋值运算符?
string func()
{
string s;
//do something with s
return s;
}
string mystr=func();
(这不是C++ 11) 在上面的例子,我明白,当它被返回,然而,在本实施例的string
复制构造将被调用,将在string
的拷贝赋值运算符也当mystr
获得它的价值时被调用?复制构造函数和复制赋值运算符?
string mystr=func();
不调用复制赋值运算符。它使用复制构造函数初始化mystr
。
要调用复制赋值运算符,初始化和赋值需要两个单独的语句。
string mystr;
mystr = func();
不,您发布的代码迄今没有涉及任何形状,方式或形式的string
的复制分配操作符。