28

暗黙的な移動コンストラクターが十分でない場合はいつですか?

通常、自分のメモリを管理する場合にのみ必要なデストラクタやコピー コンストラクタのように扱う必要がありますか?

この (非常に不自然な) シナリオでは、暗黙的な移動コンストラクターは十分に適切ですか?

class A
{
private:
    B b;
    std::string name;

public:
    A();
    std::string getName() const {
        return name;
    }

    B getB() const {
        return b;
    }
};

class B
{
private:
    std::vector list;

public: 
    B();
    std::vector getList() const {
        return list;
    }
};
4

2 に答える 2

16

義務ゼロの答え: 単一のリソースを管理するクラスを設計して、移動/コピー/デストラクタ/割り当てをオーバーライドするか、リソース マネージャを集約してオーバーライドを必要としないクラスを設計します。

于 2013-06-14T07:20:32.217 に答える