【C++】容器array+类的按需实例化

大家好,我是苏貝,本篇博客带大家了解C++的容器array+类的按需实例化,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


1. 容器array

在这里插入图片描述

容器array和我们自己写的a2都是静态数组,容器array有什么意义吗?
在这里插入图片描述

我们用C语言写的数组,对越界读检查不出来。对越界写是抽查,很多位置都检查不出来
在这里插入图片描述
在这里插入图片描述

但容器array的对象,对任意越界读写都能检查出来
在这里插入图片描述

看到这里,你是不是觉得array还是蛮好用的?可是,它能做到的vector都能做到。array能检查任意越界读写,vector也可以。vector还能初始化,array不行。array可能会栈溢出,但vector一般不会(因为array开辟的空间在栈上,栈的大小要小于堆的大小)

在这里插入图片描述

在这里插入图片描述

2. 类的按需实例化

看下图:size()没有参数,但是在operator[ ]中给size传了一个参数,应该要报错的

在这里插入图片描述
在这里插入图片描述

但是都没有报错

在这里插入图片描述

只有在调用operator[ ]时才会报错
在这里插入图片描述

只有在调用operator[ ]时才会报错的原因:类在实例化的时候,会按需实例化(调用哪个成员函数就实例化哪一个)。当没有调用operator[ ]时,编译器不会对它的内容进行很细致的检查,所以就检查不出来。只有调用operator[ ],才会实例化operator[ ],编译器才会细致的检查,因此能检查出来。


好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值