string func()
{
string s;
//do something with s
return s;
}
string mystr=func();
上記の例では (これはC++ 11ではない)、Iはstring
のコピーコンストラクタは、それが返されたとき、しかし、この例では、string
のコピー代入演算子は、また、意志と呼ばれることを理解しますmystr
はその価値を得ると呼び出される?コンストラクタとコピー代入演算子をコピーしますか?
string func()
{
string s;
//do something with s
return s;
}
string mystr=func();
上記の例では (これはC++ 11ではない)、Iはstring
のコピーコンストラクタは、それが返されたとき、しかし、この例では、string
のコピー代入演算子は、また、意志と呼ばれることを理解しますmystr
はその価値を得ると呼び出される?コンストラクタとコピー代入演算子をコピーしますか?
string mystr=func();
は、コピー代入演算子を呼び出しません。コピーコンストラクタを使用してmystr
を初期化します。
コピー代入演算子を呼び出すには、初期化と代入を別々の2つのステートメントにする必要があります。
string mystr;
mystr = func();
いいえ。これまでに投稿したコードには、形状、方法、または形式のstring
のコピー代入演算子は含まれていません。