CString s("ok");
CString alpha=move(s);
この正確なコードを使用すると、コンパイラはコピーコンストラクタを使用してアルファベットを初期化します。デフォルトではコンストラクタを移動します
私は明示的に移動コンストラクタを定義するとき、それは移動コンストラクタを使用し、必要に応じて作業を完了しました...!
キーワードはMoveキーワードを使用していても(自分で移動コンストラクタを定義していなくても)、コピーコンストラクタを使用しています...なぜ、コンストラクタを移動するのがデフォルトですか?私たちの側で定義されているMoveコンストラクタがない場合、moveキーワードの使用は何ですか?
'move'は関数であり、キーワードではありません。それは何も動かさない。移動コンストラクタは移動を行います。 – chris
[移動の意味は何ですか?](https://stackoverflow.com/questions/3106110/what-are-move-semantics) – user1810087
@chris私はそれを知っています。それは私が仲間に求めているものではありません。私たちのクラスで利用可能な移動コンストラクタがある場合、moveコンストラクタが使用されます。しかし、この移動機能を使用しない場合は、コピーコンストラクタは –