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