概述: 1、构造函数和析构函数是类中比较特殊的两种成员函数,分别用来对对象进行初始化和回收对象资源。 构造函数—————对象初始化!!! 析构函数—————回收对象资源!! 2、对象的生命周期从构造函数开始,从析构函数结束。如果一个类含有构造函数,在实例化该类的对象时就会被调用。如果含有析构函数,则会在销毁对象时调用。 3、构造函数的名字与类名相同,析构函数的名字也跟类名相同,不过析构函数要在名字前加一个波浪号(~)。当退出含有该对象的成员时,析构函数会自动释放这个对象所占用的空间,所以说析构函数是gc自动调用的,不是程序员所控制的。 如:类是program那么构造函数为public program(){},里面可带参数 析构函数为~program(){} ========================================================== 构造函数 构造函数有3个特点: (1)方法名与类名相同 (2)没有返回类型 (3)主要完成对象的初始化工作 (4)分为无参构造函数和有参构造函数两种 (5)刚开始系统会自动创建一个无参构造函数,但当你创建好了一个有参构造函数后,系统就不再提供这个无参构造函数了 1、用来初始化新对象的数据成员 2、不带参数的构造函数称为“默认构造函数”。无论何时,只要使用new运算符实例化对象,并且不再为new提供任何参数,就会调用默认构造函数。   上面的是默认构造函数,下面是带有参数的构造函数   常见错误:   能看出哪里错吗? 你的构造函数有返回值类型吗?为什么多加了个“string”呢!!!!!!!应去掉string 析构函数   一个类中只能有一个析构函数,并且无法调用析构函数,他是被自动调用的     ====================================================================== 最后稍微介绍下 重载构造函数 满足的条件是: (1)方法名相同 (2)方法的参数类型、个数、顺序至少有一项不相同