4

これまで、私はいつも次のようなマップを作成していました。

class TestClass
{
    private:
        std::map<int,int> *mapA;
};

TestClass::TestClass
{
    mapA = new std::map<int,int>();
}

TestClass::~TestClass
{
    mapA->clear(); // not necessary
    delete mapA;
}

だから、今私はStackoverflowのいたるところを読んでいます:できるだけ頻繁にポインタを避けてください

現在、私はポインターと新規なしでマップを作成したいと考えています(自分でオブジェクトを削除する必要がなく、メモリリークの危険性が少なくなります)!

class TestClass
{
    public:
        TestClass() : mapA() // this is also needed?
        {};
    private:
        std::map<int,int> mapA;
};

マップを正しく作成するために必要な追加の手順はありますか?

助けや説明をありがとう!

4

2 に答える 2

8

いいえ、それだけです。コンストラクターで明示的に初期化する必要はありません。

于 2013-09-27T08:16:54.347 に答える