0
点赞
收藏
分享

微信扫一扫

Leecode c++面试突击-对象创建限制在堆或栈

想溜了的蜗牛 2022-05-01 阅读 37

链接力扣​​​​​

总结:
创建对象的两种方式:堆创建(使用new创建)和栈创建(一般创建)
限制对象只能堆创建:

可以在对象外面使用new创建:析构函数设置为私有。 存在问题:(1). 无法直接在类外部delete释放对象。(2). 析构函数定义成虚函数时无法在子类中重写(解决: 析构函数设为protected)。
不在对象外使用new创建:将构造函数和析构函数全部设为protected通过调用成员函数动态创建和删除。
1和2本质上是同一种方法:将构造函数或析构函数(分别或同时)设为private或protected。
限制对象只能栈创建:
重载operator new()和operator delete()为private。

举报

相关推荐

0 条评论