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

上記の例では (これはC++ 11ではない)、Iはstringのコピーコンストラクタは、それが返されたとき、しかし、この例では、stringのコピー代入演算子は、また、意志と呼ばれることを理解しますmystrはその価値を得ると呼び出される?コンストラクタとコピー代入演算子をコピーしますか?

答えて

1
string mystr=func(); 

は、コピー代入演算子を呼び出しません。コピーコンストラクタを使用してmystrを初期化します。

コピー代入演算子を呼び出すには、初期化と代入を別々の2つのステートメントにする必要があります。

string mystr; 
mystr = func(); 
0

いいえ。これまでに投稿したコードには、形状、方法、または形式のstringのコピー代入演算子は含まれていません。

関連する問題