类的默认成员函数之构造与析构

上一节补充:this指针存在栈上,类似于形参,this不能显式的传递,只能隐式传递。


构造函数:

成员变量为私有的,要对它们进行初始化,必须用一个公有成员函数来进行。同时这个函数应该有且仅在定义对象时自动执行一次,这时调用的函数称为构造函数

构造函数的特点:

  1. 与类名相同,参数可写可不写,在对象实例化时系统自动调用
  2. 无返回值
  3. 若不满足需求,构造函数可以重载
  4. 构造函数可以在类内定义,也可以在类内声明类外定义,但在类外时需要声明域
  5. 如果类定义中没有给出构造函数,c++编译器会自动产生一个缺省的构造函数(但不保证是否初始化,可能为随机值),但只要我们定义了,系统就不会自动产生缺省的构造函数
  6. 无参的构造函数和全缺省的构造函数都可以认为是缺省构造,不能并存。

析构函数:

当一个对象声明周期结束时,c++编译器会自动调用一个成员函数,这个特殊的成员函数就是析构函数

析构函数的特点:

  1. 析构函数格式:~类名
  2. 析构函数无参数无返回值
  3. 负责对象的清理工作,并不是删除对象,而是将对象中的成员动态释放,对象的释放是由操作系统完成的。
  4. 日期类的析构函数通常不写
  5. 一个类有且只有一个析构函数,若未显示定义系统会自动生成缺省的析构函数
  6. 对象生命周期结束时,C++编译系统系统自动调用析构函数。

猜你喜欢

转载自blog.csdn.net/enjoymyselflzz/article/details/80984366