7

我有一个vectorof unique_ptrs 指向一个名为 state 的类。当我pop_back()使用向量调用时,唯一指针会从内存中删除(我认为),但它指向的状态对象永远不会被删除。在删除它指向的对象时,无论是那个还是唯一指针都不会调用析构函数?我所知道的是,当我的唯一指针从向量中删除时,我的析构函数不会被调用。

这是向量:

std::vector< std::unique_ptr<State> > mStates;

我试过了:

mStates.pop_back();

这删除了唯一指针,我认为唯一指针会为我删除状态并调用状态的析构函数,但这并没有发生。顺便说一句,我使用以下方法添加元素:

 mStates.push_back();
4

1 回答 1

13

我修好了它。我的问题是我需要一个虚拟析构函数。我什至没有考虑可能存在虚拟析构函数。现在可以了。

于 2013-08-20T22:20:23.650 回答