队列(queue) 之 c++模板实现(友元函数和运算符重载)

本文介绍了C++中队列的模板实现,探讨了友元函数和运算符重载的使用。作者讨论了函数返回值类型的选择,如isEmpty()通常返回bool,而交换和清除操作通常使用void。还提到了返回引用的风险以及const在函数参数和返回值中的作用。此外,文章还涉及了友元类和常成员函数的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:起因(请参考 c++中的悬浮指针和野指针 二级指针

(0)拿出自己年初实现的queue队列,第一次用c++类实现queue,在和如今实现的其他复杂的STL对比,心情无比复杂;

注释:看到听到当年自己的所写所想,正的是一种享受 —— 倾听自己的幼稚也是一种美。

(1)闲话少说了,我自己现在回答自己的 三 (5) 中提到的问题,函数的返回值是用bool型还是void型??其实函数返回值是bool 还是 void是视情况而定的:例如,判空函数bool isEmpty(),比较运算符重载函数 bool operator >=(&)等判断函数; 而像交换swap(&,&),清空clear(),insert(),delete(),push,pop等一般void就可以了。

(2)再有就是是通过函数返回值返回值,还是通过参数的应用返回值呢? 仍是视情况而定的,如果返回多值,只能通过参数了;下面说一说返回单值的情况,多数是通过函数返回值返回的只有像swap(&,&) (类成员函数就一个参数的哦,默认有一个隐含的this指针),reverse()等。

(3)现在的问题是  返回单值 时是引用型(&) 还是 返回临时变量的值的形式?  第一,如果返回值的参数是该子函数的局部变量,只能以临时变量的形式返回;第二,如果在该子函数中,返回值的参数是类的成员变量(私有或共有),或者说是全局变量,可以返回引用。但是返回引用是有风险的 如,

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值