2
class MyMap : std::map<char, pro::image>
{
public:
     void MyMethod(char x);
     /** code **/
}

void MyMap::MyMethod(char x)
{
     pro::image my_img; // note that my_img is a local variable
     my_img.LoadFromFile("my_image.png");

     this->insert(std::pair<char, pro::image>(x, my_img)); // stored in the class
}

さて、このコードは安全ですか? 基本的に、いつのコピーMyMap保存しますか、それとも参照を保存しますか?my_imginsert

4

1 に答える 1

5

コピーを保存します。

しかし、本当に継承が必要ですか?std::mapクラスメンバーを作成する必要があります。

class MyMap
{
    std::map<car, pro::image> map_;
public:
     void MyMethod(char x);
     /** code **/
};

void MyMap::MyMethod(char x)
{
     pro::image my_img; // note that my_img is a local variable
     my_img.LoadFromFile("my_image.png");

     map_.insert(std::pair<char, pro::image>(x, my_img)); // stored in the class
}
于 2012-07-08T03:36:37.760 に答える