1.33、空类中有什么函数?

空类在C++中虽然没有成员变量,但编译器会根据需要自动生成若干默认成员函数,保证类的基本行为完整性。主要包括以下几类:

  • • 默认构造函数:无参,负责对象的默认初始化。
  • • 默认拷贝构造函数:以常量引用参数,实现对象的拷贝初始化。
  • • 默认析构函数:负责对象销毁时的清理工作。
  • • 默认拷贝赋值运算符:实现对象的赋值操作。
  • • 取址运算符重载(operator&):返回对象地址的指针版本,分别有非constconst两个重载。

此外,C++11及以后标准还会生成:

  • • 移动构造函数
  • • 移动赋值运算符

但这些只有在需要时才会被编译器隐式声明和定义。

面试中简短回答:

空类默认包含的成员函数不仅是构造、拷贝、析构和赋值运算符,还包括取址运算符的重载,且所有这些函数都是inlinepublic,且只有在实际使用时才会被编译器生成。若用户显式声明任一函数,编译器则不再自动生成对应默认函数。

这种设计保证了即使类本身没有数据成员,也能正常支持对象的创建、复制、销毁和地址获取,满足C++对象模型的完整性和一致性。
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)

阅读剩余
THE END