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 回答