垃圾收集如何处理由方法链接创建的这些静态实例

时间:2015-06-17 18:07:31

标签: c++ garbage-collection

我想在C ++中使用方法链接,但我担心内存泄漏 - 我不知道垃圾收集如何处理方法调用返回的中间实例。

请注意,我故意不返回(这)因为这是该计划的要求。

ObservableCollection

知道垃圾收集处理静态声明的变量,我决定这些方法可以返回" Polynomial"与返回指针。问题是Polynomial是一个新实例化的实例(在方法中创建)并且它有一个动态分配的成员 - 所以我需要确保它被调用它的解构函数。

调用每个方法后,新的(AFAIK)"静态"创建声明的实例,并使用新实例调用其他方法。但是中间实例会发生什么?

1 个答案:

答案 0 :(得分:4)

C ++中没有垃圾收集,需要清理内存,你可以写一个析构函数。

Polynomial::~Polynomial() {
    delete poly;
}

new你还必须delete或者你正在泄露记忆。另外,如果您正在创建poly成员变量,那么它应该是

类型
DoublyLinkedList* poly;

要知道在C ++中你应该避免使用newdelete,而不想使用RAII semantics