第二章 类和对象基础

构造函数

  1. 默认创建空构造函数
  2. 自定义构造函数时(可多个,即可重用),不再创建默认空构造函数
  3. 调用构造函数可创建相应的临时变量

复制构造函数

  1. ClassName(ClassName &arg)ClassName(const ClassName &arg)
  2. 用途
    • 初始化时使用(不等于赋值,赋值不使用该函数)
    • 函数传入形参时使用
    • 函数返回参数时创建临时变量使用
  3. 默认创建构造函数,用于复制类参数;自定义构造函数时,默认的不存在

类型转换构造函数

  1. 只有一个参数,且不是复制构造函数的构造函数
  2. 会创建一个临时对象,然后赋值
  3. 目的:实现类型的自动转化
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;
}

析构函数

  1. 默认生成一个,最多一个
  2. ~ClassName(){}
  3. 构造函数不创建对象,只负责对象创建后的处理;析构函数不删除对象,只负责删除前的善后工作

猜你喜欢

转载自www.cnblogs.com/DreamEagle/p/12631967.html