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