c++ - 将指针传递给具有私有(private) *tors 的类是否危险?

标签 c++ pointers memory-leaks shared-ptr

如果我有一个带有私有(private)构造函数和析构函数的类,将经典的 c 风格指针传递给实例(与 shared_ptr 相反)是否仍然危险?是否存在内存泄漏的情况? 我程序中实例的生命周期由友元工厂类专门管理(它还使用私有(private)自定义删除器以允许管理器类在内部使用 shared_ptr 对象)。

最佳答案

如果您已经有了指针,那么构造函数根本不重要。至于析构函数——如果你有一个私有(private)的,你将无法删除是,我相信,这也会阻止你实例化shared_ptr(如 dandrestor指出 — 除非您提供自定义删除器,您不仅可以将其与 shared_ptr 一起使用。

所有限制都是在编译时施加的,因此如果您由于隐私问题无法释放内存,您将在编译时收到通知。

关于c++ - 将指针传递给具有私有(private) *tors 的类是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261307/

相关文章:

当我使用 header 时,C++ 函数会引发错误,但如果我在源代码中定义它,则不会引发错误?

c++ - copy-and-swap 技术在赋值运算符函数中使用复制构造函数

C++ 快速排序字符串指针数组

ruby - rails 3.0.7 内存泄漏

c - JSON (GLib) 序列化泄漏 GHashTable 的内存

objective-c - 非常奇怪的 ARC 内存泄漏

c++ - 在为一个对象调用析构函数时,它被调用了两次?

c++ - 比较两个人脸opencv

c++ - 指针和字节地址一样吗?

c - C 中的 int* ptr 和 int *ptr 有什么区别?