例如,我有不同的容器類來保存MyClass的對象通過new操作符創建:是否可以重寫MyClass *(不是MyClass)的析構函數?
class A{
MyClass* m;
vector<MyClass*> vm;
vector<vector<MyClass> > vvm;
pair<int,MyClass*> pim;
};
我想刪除一個所有MyClass的對象時,A被破壞,是可以覆蓋的析構函數MyClass的*,如:
~MyClass*(){
delete *this;
}
,以取代自定義的析構函數:
~A(){
delete m;
for(MyClass* m : this->vm){
delete m;
}
for(vector<MyClass*> vm : this->vvm){
for(MyClass* m : this->vm){
delete m;
}
}
delete pim.second;
}
使我無需添加新的代碼時,O型f容器被添加來保存MyClass的引用?
如果你使用'std :: share_ptr',你可以使用'A ::〜A(){}'。 –
你打敗了我R Sahu。雖然不是'std :: shared_ptr'? –
CommanderBubble
@CommanderBubble,是的'shared_ptr'。 –