人們說,如果你需要一個析構函數,那麼你確實需要一個重載operator=
struct longlife{ };
class z
{
z(){};
~z(){ for(auto it=hold.begin();it!=hold.end() ++it) delete(*it); };
vector<longlife*> hold;
};
假設插在hold
所有指針都new
堆分配,除了decon之外,爲什麼還有其他東西這個例子需要structor嗎?
通過anything else
我的意思是一樣的東西,
z& operator=(const z&ref)
{
hold = ref.hold;
return *this;
}
請問:
z a;
a.hold.push_back(heap_item);
z a2;
a2 = a;
導致內存泄漏?有時很難理解爲什麼三條規則是規則
關於「三法則」的第一條規則是您應該遵守[Rule of Zero](http://rmartinho.github.com/2012/08/15/rule-of-zero.html)。 –
@Xeo,我明白三條規則是什麼,問題大多是爲什麼它是一條**規則** –
如果你問那個,那你就不明白了。 – Xeo