欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第二章 类和对象基础

程序员文章站 2022-04-09 14:53:32
[TOC] 构造函数 1. 默认创建空构造函数 2. 自定义构造函数时(可多个,即可重用),不再创建默认空构造函数 3. 调用构造函数可创建相应的临时变量 复制构造函数 1. 或`ClassName(const ClassName &arg)` 2. 用途 初始化时使用(不等于赋值,赋值不使用该函数 ......

目录

构造函数

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