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_img
时,insert
会存储副本,还是会存储引用?
答案 0 :(得分: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
}