目前,在我的C++项目中,对象的所有权/删除是手动跟踪的(主要通过注释)。几乎每个堆分配的对象都是使用某种工厂创建的。
例如:
auto b = a->createInstanceOfB(); //a owns b
auto c = b->createInstanceOfC(); //b owns c
//auto k = new K(); //not in the code
...
//b is no longer used..
a->destroyInstanceOfB(b); //destroyInstanceOf calls delete on it
在这种情况下,智能指针会提供哪些好处(如果有)?