クラスの 1 つに、次のコンストラクタ、デストラクタ、代入演算子があります。メモリリークするかどうか疑問に思っています。
MenuItem::MenuItem() {
menu_items = new vector<MenuItem>;
}
MenuItem::MenuItem(const MenuItem &other) {
menu_items = new vector<MenuItem>(*other.menu_items);
}
MenuItem::~MenuItem() {
menu_items->erase(menu_items->begin(), menu_items->end());
delete menu_items;
}
MenuItem & MenuItem::operator= (const MenuItem &other) {
*menu_items = *other.menu_items;
return *this;
}
私の主な関心事は代入演算子です。私はいくつかのドキュメントを見て、これを見つけました:The container preserves its current allocator, which is used to allocate storage in case of reallocation. Any elements held in the container before the call are either assigned to or destroyed.
私にとって、これは私の割り当てがメモリ リークから安全であることを意味しますが、以前にドキュメントを誤解したことがあります。助けてくれてありがとう。