[笔记]C++的空类

面试题:新建一个C++的空类,会产生那些函数。
class Empty{

};

编译器处理后:生成如下:
class Empty{
     public:
          Empty();//构造函数
          Empty(const Empty&);//拷贝构造函数
          ~Empty();//析构函数
          Empty& opteror=(const Empty&);//赋值运算符
          Empty* opteror&();//取址运算符
          const Empty* opteror&() const;//取址运算符 const
};

每次遇到这个问题,我都会思考:
  1. 为什么C++编译器会自动生成这几个函数而不生成其他函数呢?
  2. 所有上述函数都会同时产生吗?还是说编译器检测到使用到某函数时,才会定义他们呢?
  3. 他们有什么作用?
  4. 什么时候起作用?

所有问题都是有依据的,在这里,我分为几部分来解析。
注意:并不是直接回答上述问题,因为知识点我是根据问题来拆分的。
[C++]new/delete:重载构造和合理定义析构
[C++]operator overlord:重载赋值运算符
[C++]copy constructor and copy assignment operator:复制拷贝函数与赋值运算符的讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值