1

わかりましたので、次のような2つのクラスがあります。

class Item
{
    private:
        HANDLE Parent;

    public:
        Item(const Item &I) = delete;
        Item(Item &&I) = delete;
        void SetParent(HANDLE Handle);

        Item& operator = (const Item &I) = delete;
        Item& operator = (Item &&I);
};

void Item::SetParent(HANDLE Handle)
{
    this->Parent = Handle;
}

Item& Item::operator = (Item&& I) {/*Do Move Here*/}


class Box
{
    private:
        HANDLE Handle;

    public:
        void Add(const Item &I);
};

void Box::Add(const Item &I)
{
    I.SetParent(this->Handle);   //Error.. Item I is const.
}

I が const であるというエラーが表示されますが、それは理にかなっていますが、I をその場で構築する機能を失うことなく、Item I の SetParent を行う方法が必要です。

Box B(Item());

それ以外の:

Item I;
Box B(I);

SetParent を呼び出して変更できるようにしながら、I のインライン構成を維持する方法はありますか?

4

1 に答える 1