0

Xはクラスです

X operator+()
{
X a;
return a;
}

Book iam reading (ivor horton C++) によると、この関数が呼び出され、移動コンストラクターがクラス 'X' に実装されている場合、クラス コンストラクターと移動コンストラクターが呼び出されます。移動コンストラクターが実装されていない場合、コンストラクターとコピー コンストラクターが呼び出されます。

オブジェクト 'a' は左辺値コピー コンストラクターを常に呼び出す必要があるためです。move コンストラクターにはパラメーターとして右辺値参照があるため、左辺値を渡すことはできません。

moveコンストラクタが呼び出される理由を誰でも説明できますか。

4

0 に答える 0