如果我有一个带有私有(private)构造函数和析构函数的类,将经典的 c 风格指针传递给实例(与 shared_ptr 相反)是否仍然危险?是否存在内存泄漏的情况? 我程序中实例的生命周期由友元工厂类专门管理(它还使用私有(private)自定义删除器以允许管理器类在内部使用 shared_ptr 对象)。
最佳答案
如果您已经有了指针,那么构造函数根本不重要。至于析构函数——如果你有一个私有(private)的,你将无法删除
是,我相信,这也会阻止你实例化shared_ptr
(如 dandrestor指出 — 除非您提供自定义删除器,您不仅可以将其与 shared_ptr
一起使用。
所有限制都是在编译时施加的,因此如果您由于隐私问题无法释放内存,您将在编译时收到通知。
关于c++ - 将指针传递给具有私有(private) *tors 的类是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261307/