構(gòu)造體のオーバーロード演算子に関する混亂
リーリー ###真ん中### リーリー関數(shù)とは何ですか?
これら 2 つのステートメントを削除しても、コンパイルは正常に完了しますが、
リーリー
はコンパイルエラーになりますが、
正常にコンパイルできます
構(gòu)造體の初期化は行うべきではありません
big n(123);Xiaobi が試したところ、結(jié)果に違いがないことがわかりました。原則は何ですか?
神が助けてくれることを願(yuàn)っています
リーリー投稿の引用: http://www.cnblogs.com/chio/a…。割り當(dāng)ては 2 つの既存のオブジェクト間で実行されますが、初期化では新しいオブジェクトが作成され、その初期値は別の既存のオブジェクトから取得されます。コンパイラはこれら 2 つの狀況を區(qū)別し、代入中にオーバーロードされた代入演算子を呼び出し、初期化中にコピー コンストラクターを呼び出します。クラスにコピー コンストラクターがない場(chǎng)合、コンパイラーはデフォルトのコンストラクターを提供します。このデフォルトのコピー コンストラクターは、クラスのすべてのメンバーを単純にコピーします。
コピーコンストラクターは次のように呼ばれます:
リーリーもちろん、コメントした後はエラーが発生します、そして
リーリーデフォルトのコンストラクターが最初に呼び出され、次に代入演算子が呼び出されるため、2 つの関數(shù)をコメントアウトしても問(wèn)題はありません。
自分でデバッグできます。