0

こんにちは、簡単な質問があります。たとえば、整数を取るコンストラクターを持つクラスがある場合、そのクラスのオブジェクトをコピー初期化すると、コピー コンストラクターまたはコンストラクターが呼び出されます。

class M 
{
    public:
        M(int) { cout << "M(int)\n"; }
        M(const M&) = delete;
        M(const M&&) = delete;
};


int main()
{

    M m = 9; // why M(int) is called but not a copy-ctor or move-ctor?
}
  • ご覧のとおり、ここにはあいまいさがあります。M m = 9;これは一種の形式だとCopy-initialization思うので、通常は copy-ctor または move-ctor を呼び出す必要があると思います。コンパイル時エラーを取得するためにテーマの削除を宣言しましたが、機能しますか?
4

0 に答える 0