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
它,还是它存储参考?是否将一个本地变量存储在类安全的STL容器中?
这很安全。然而,std :: map有一个非虚拟的析构函数,所以你不应该从它继承。 – mfontanini 2012-07-08 03:37:54
这只与'pro :: image'的复制构造函数一样安全。如果不能安全地复制'pro :: image',比'std :: map'不安全。 –
2012-07-08 03:44:24