[笔记]C++的空类

xiaoxiao2021-02-27  424

面试题:新建一个C++的空类,会产生那些函数。 class Empty{ }; 编译器处理后:生成如下: class Empty{ public: Empty();//构造函数 Empty(const Empty&);//拷贝构造函数 ~Empty();//析构函数 Empty& opteror=(const Empty&);//赋值运算符 Empty* opteror&();//取址运算符 const Empty* opteror&() const;//取址运算符 const }; 每次遇到这个问题,我都会思考: 为什么C++编译器会自动生成这几个函数而不生成其他函数呢?所有上述函数都会同时产生吗?还是说编译器检测到使用到某函数时,才会定义他们呢?他们有什么作用?什么时候起作用? 所有问题都是有依据的,在这里,我分为几部分来解析。 注意:并不是直接回答上述问题,因为知识点我是根据问题来拆分的。 [C++]new/delete:重载构造和合理定义析构 [C++]operator overlord:重载赋值运算符 [C++]copy constructor and copy assignment operator:复制拷贝函数与赋值运算符的讨论
转载请注明原文地址: https://www.6miu.com/read-2885.html

最新回复(0)