特殊成员函数 (C++)
C++ 定义了几种只能声明为类成员的函数 - 它们称为“特殊成员函数”。这些函数将影响创建、销毁和复制给定类的对象以及将其转换为其他类型的对象的方式。 很多这类函数的另一个重要属性是它们可以(由编译器)隐式调用。
本节中介绍的特殊成员函数如下所示:
构造函数。 启用对象的自动初始化。
析构函数。 在显式或隐式销毁对象后执行清理。
转换函数。 在类类型和其他类型之间的转换。
运算符 new 函数。 动态分配存储。
运算符 delete 函数。 释放使用 new 运算符分配的存储。
赋值运算符 (operator=)。 在发生赋值时使用。
以上列表中的项可由用户为每个类定义。
特殊成员函数遵循与其他成员函数相同的访问规则。 这些规则在成员访问控制中介绍。 下表汇总了成员和友元函数的行为方式。
函数行为的摘要
函数类型 |
函数是否继承自基类? |
函数是否可以为虚函数? |
函数是否能返回值? |
函数是成员函数还是友元函数? |
在用户不生成函数时,编译器是否生成函数? |
---|---|---|---|---|---|
构造函数 |
否 |
否 |
否 |
成员 |
是 |
复制构造函数 |
否 |
否 |
否 |
成员 |
是 |
析构函数 |
否 |
是 |
否 |
成员 |
是 |
转换 |
是 |
是 |
否 |
成员 |
否 |
赋值 (operator=) |
否 |
是 |
是 |
成员 |
是 |
new |
是 |
否 |
void* |
静态成员 |
否 |
删除 |
是 |
否 |
void |
静态成员 |
否 |
其他成员函数 |
是 |
是 |
是 |
成员 |
否 |
友元函数 |
否 |
否 |
是 |
Friend |
否 |