我想在C ++中使用方法链接,但我担心内存泄漏 - 我不知道垃圾收集如何处理方法调用返回的中间实例。
请注意,我故意不返回(这)因为这是该计划的要求。
ObservableCollection
知道垃圾收集处理静态声明的变量,我决定这些方法可以返回" Polynomial"与返回指针。问题是Polynomial是一个新实例化的实例(在方法中创建)并且它有一个动态分配的成员 - 所以我需要确保它被调用它的解构函数。
调用每个方法后,新的(AFAIK)"静态"创建声明的实例,并使用新实例调用其他方法。但是中间实例会发生什么?
答案 0 :(得分:4)
C ++中没有垃圾收集,你需要清理内存,你可以写一个析构函数。
Polynomial::~Polynomial() {
delete poly;
}
你new
你还必须delete
或者你正在泄露记忆。另外,如果您正在创建poly
成员变量,那么它应该是
DoublyLinkedList* poly;
要知道在C ++中你应该避免使用new
和delete
,而不想使用RAII semantics。