参数传递和返回值

一、pass by value vs. pass by reference(to const)

 pass by value:这个数据有多大,就整个包传递,压入到栈中。尽量不要这样传。

pass by reference:像指针但是更漂亮。引用在底部就是个指针,尽量都传引用。例子中传引用且加了const,不希望传过去被更改。

二、return by value vs. return by reference(to const)

可以的情况下,返回值的传递也尽量用by reference。

什么时候不能返回引用:例如,传入两个参数为两个复数,该函数实现一个复数的加法,这时候要在函数内部新创建一个结果。因为函数一结束,这个东西就死亡了,但是却传了一个引用出去,这时候不能传引用。

friend:友元。例子中的友元函数,可以直接拿private中的实部虚部。相当于打破了封装。

 三、注意:相同class的各个objects互为友元

没有写friend,但是标黄色的可以直接拿实部虚部。 

 

posted @ 2023-09-05 21:06  Niiiinomiya  阅读(10)  评论(0编辑  收藏  举报