10-3 类的构造函数和析构函数
10.3类的构造函数和析构函数
10.3.1构造函数
介绍
在对象被构造一瞬间进行的操作函数,常用来初始化
创建
构造函数的名称与类名相同,无需声明类型(即无返回值),原型位于类声明的公共部分。
注意:类构造函数的参数不能是类成员,因为构造函数应该给类成员赋值,而不是直接接收类成员的值。
使用
方法1:显式的调用构造函数
Stock food=Stock("World Cabbage",250,2.5); |
方法2:隐式的调用构造函数
Stock garment("funny",50,2.5); |
使用new的方法:
Stock *pstock= new Stock("hello",18,19.0); |
注:无法使用对象来调用函数,因为函数开始于对象构造时,此时对象还不存在。
默认构造函数
如果调用者直接创建变量而不使用构造函数,则会自动调用默认构造函数。c++会在没有创建构造函数时自动补上默认构造函数,但一旦有了构造函数,则默认构造函数需要手动补齐。
创建方法有
1.给构造函数参数全部附上默认值
2.使用函数重载再定义一个默认构造函数
注意:默认构造函数只能有一个,所以不能同时使用这两种方法
Stock gooden;//隐式的调用了默认构造函数,注意没有() |
10.3.2析构函数
介绍
对象过期时,程序会自动调用一个特殊的成员函数——析构函数。一般没啥用,但如果对象以new创建,则可以在析构函数中自动写入delete来释放。
创建
析构函数的名称是类名前加~,无需声明类型,也没有参数,原型位于类声明的公共部分。
Stock::~Stock() |
默认析构函数
如果调用者直接创建变量而不使用析构函数,则会自动调用默认构造函数。c++会在没有创建析构函数时自动补上默认析构函数。
发布于