C ++標準によると、との間に違いはsomething.operator=(somethingElse)
ありsomething = somethingElse
ますか?
最初のT& something
バージョンはでテンプレートに表示されますが、より読みやすい2番目のバージョンに置き換えても安全かどうかを知りたいのですが。
オブジェクトに対してa = b
常に明示的な演算子を呼び出すとは限らないため、小さな違いがありますa
。
T a = b;
。これは割り当てではなく初期化です。コピー(または移動)構造を呼び出します。a = b;
aが組み込みオブジェクト(整数、ポインター、浮動小数点など)の場合:=
演算子は組み込みオブジェクトです。T
自明コピー可能で、assignementは何をしても許されていないoperator =
コンパイラはassignementオペレータ組み込みのデフォルトを使用するので、クラスで宣言されています。ただし、operator =
メソッドが存在し、オーバーロード解決ルールによって選択されている場合、代入演算子はそのメソッドを呼び出します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加