第二章 类和对象基础

0
11

目录

  • 构造函数
  • 复制构造函数
  • 类型转换构造函数
  • 析构函数

构造函数

  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. 构造函数不创建对象,只负责对象创建后的处理;析构函数不删除对象,只负责删除前的善后工作

<

发布回复

请输入评论!
请输入你的名字