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