1.1构造函数和析构函数语法

标题:1.1构造函数和析构函数语法(详解)

两个函数了解
为什么要这两个函数:你拿到手机肯定要进行初始化,出场设置必须要有。卖二手机,你不可能直接把手机给别人,这样是不安全的,我们人都会清理手机,何况是死板的程序。
1.构造函数:用于初始化
作用:主要是在创建对象时为对象的成员属性赋值
语法:类名(){}
1.无返回值,也不能写void
2.函数名与类名相同
3.可以有参数,所以可以重载
4.程序在调用对象时会自动调用构造函数,无须手动调用,而且只会调用一次。手机不可能每天起床都是出场化设置让你选择语言,地区这些,所以只调用一次

2.析构函数:用于清理
作用:主要作用于对象销毁前系统自动调用,执行一些清理操作
语法:~类名(){}
1.无返回值,也不能写void
2.函数名与类名相同但是最前面要加一个~符号
3.函数不可以有参数,所以不能够重载
4.程序在调用对象会自动调用析构函数,无须手动调用,而且只会调用一次

注意事项:编译器会自动调用这两个函数,如果为我们不提供构造函数和析构函数,那么编译器会帮我们提供但是空实现。

1.构造函数:
在这里插入图片描述

从上图可以看出,我们就创建了一个对象什么都没干但是他自动调用了。

这句话也只出现了一次,所以我们可以理解为只调用了一次。

如果我们不写这一行代码,那么并不会出现呢构造函数的调用这些几个字,也就是编译器空实现(实现了空语句)。

2.析构函数:
在这里插入图片描述

看上图,析构函数也是自动调用,而且只调用了一次。
我们来深挖一下为什么会释放析构函数,我们这个是在函数里创建的对象。创建的是在栈区对吧,也就是说我们用的时候创建,不用的时候销毁。所以在销毁前调用了析构函数。

再看看另外一个例子:
在这里插入图片描述
看见没看见没,这次就没有析构函数了,为什么?我们多了一句system(”pause“)程序到这里就暂停了,但是并没有结束,对象还有没销毁,他说的喊我们按任意键继续。
在这里插入图片描述
程序结束,销毁对象,还是会释放。因为创建在主函数里面的局部变量在程序结束时也会被自动释放的。但是在system(”pause“)的时候并没有结束程序,也就是说并没有释放。所以没有出现析构函数的调用这句话。

注意事项:
构造函数必须要实现的,只是你不提供编译器会自动提供。

如有错误,希望大家的提醒。如果有什么问题可以在评论区留言,我们一起探讨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值