第二章 类和对象基础
程序员文章站
2022-04-09 14:53:32
[TOC] 构造函数 1. 默认创建空构造函数 2. 自定义构造函数时(可多个,即可重用),不再创建默认空构造函数 3. 调用构造函数可创建相应的临时变量 复制构造函数 1. 或`ClassName(const ClassName &arg)` 2. 用途 初始化时使用(不等于赋值,赋值不使用该函数 ......
目录
构造函数
- 默认创建空构造函数
- 自定义构造函数时(可多个,即可重用),不再创建默认空构造函数
- 调用构造函数可创建相应的临时变量
复制构造函数
-
classname(classname &arg)
或classname(const classname &arg)
-
用途
- 初始化时使用(不等于赋值,赋值不使用该函数)
- 函数传入形参时使用
- 函数返回参数时创建临时变量使用
- 默认创建构造函数,用于复制类参数;自定义构造函数时,默认的不存在
类型转换构造函数
-
只有一个参数,且不是复制构造函数的构造函数
-
会创建一个临时对象,然后赋值
-
目的:实现类型的自动转化
class complex{ private: double real,imag; public: complex(){} comoplex(int i){ //类型转换构造函数 real=i;imag=0; } complex(double r,double i){ //不是类型转换构造函数 real=r;imag=i; } } int main(){ complex c1(7,8); complex c2=12; c1=9; return 0; }
析构函数
- 默认生成一个,最多一个
~classname(){}
- 构造函数不创建对象,只负责对象创建后的处理;析构函数不删除对象,只负责删除前的善后工作