在C++中,我们可以通过对象来管理资源,即在Ctor中获取资源,并在Dtor中释放资源(RAII)。这依赖于C++的自动析构函数调用。但是,在底层如何实现呢?例如,C++如何知道要调用
c1
的Dtor而不是c2
的Dtor。(我知道这个问题以前肯定已经回答过了,但我的所有搜索结果都是关于如何使用RAII的主题)。谢谢!class Cat;
Cat c1;
Cat* c2 = new Cat();
编辑:
我知道需要为c2
调用delete,但我不明白当c1
超出范围时如何调用Dtor。
c2
的析构函数,只不过是调用Cat*
的析构函数,这个析构函数是微不足道的。 - Hatted Rooster