编译器为类生成的特定成员函数
对于给定的类,编译器可能会根据该类生成特定的成员函数定义和用户定义实现的可用性。这些成员函数包括:
C 98/03
-
默认构造函数:如果类不存在,编译器会生成默认构造函数定义任何构造函数。
-
复制构造函数: 如果类没有声明自己的复制构造函数,则会生成复制构造函数。
-
复制赋值运算符: 同样,如果类缺少复制赋值运算符,则会生成复制赋值运算符用户定义的实现。
-
析构函数:如果类没有定义其析构函数,编译器会生成析构函数
需要注意的是,这些成员函数仅在需要时才生成。如果它们保持未使用,编译器将不会创建它们。
C 11
C 11 引入了编译器生成的成员函数的附加规则:
-
移动构造函数:如果类缺少复制构造函数、复制赋值运算符、移动赋值运算符和析构函数,可以生成移动构造函数,假设类及其成员是可移动的,并且移动构造函数未标记为已删除。
-
移动赋值运算符: 类似地,移动相同条件下可以生成赋值运算符。
默认值的意义构造函数
默认构造函数有多种用途:
- 它允许在不指定参数的情况下创建类的实例。
- 它初始化类的数据成员默认值。
- 它允许使用需要默认值的容器和算法构造。
- 它有助于动态创建对象(例如,使用“new”)。
以上是C编译器为类生成哪些成员函数?的详细内容。更多信息请关注PHP中文网其他相关文章!