上机实验6

继承下的构造和析构函数

本次实验中对我印象最深的莫过于new运算符的用法,new运算符的主要作用为开辟一个必须要手动释放的内存空间,用于存储自己需要的信息,他不会随着某一函数的释放而释放,是需要程序员手动释放的。

new的几种用法:

①开辟一个存储一个变量的区域,例如new int;即为开辟一个存储整形数据的空间,一般我们需要定义一个指针来指向它,像int*p=new int;,在p里存储的就是这个空间的地址,我们就可以对里面进行数据写入,如&p=1;,那么这个区域里存储的变量就是1,当然我们还可以直接给他赋值,像int*p=int new(1);,这样同以可以达到赋值的效果。在程序结束后,我们就需要对使用new运算符开辟的区域进行释放,格式如下delete p;,这样他就被释放掉了,但是需要注意的是,p所存的数值(即前面开辟区域的地址,并没有被释放)

②开辟一个数组,相较于上一种用法,他的区别在于他开辟的空间变大了,语句格式是new+数据类型[字符数],使用方法举例为int *p=new int[2];,意为开辟两个可以存储整型变量的连续区域,指针p指向此区域的首地址,我们在使用时要人为注意是否越界,系统是无法判断的,这一点尤为重要。与之相对应的,释放该区域要使用delete int[];

构造函数和析构函数下的new和delete要成对出现,同时若有多个构造函数,他要与析构函数中的delete兼容,即要么全是new 数据类型;delete 数据类型;,要么全是new 数据类型[];delete 数据类型[];。

继承下的构造函数:

这里比较重要的一点在于,如果基类只有一个构造函数带参,那么需要在子类手动调用,格式如下:

子构造:基类构造(参数){}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值