1.4参数传递与返回值(1)
来源:互联网 发布:switch case语句 php 编辑:程序博客网 时间:2024/06/15 19:21
继续分析complex类
const member functions(常量成员函数)
上图类中的函数:
double real () const {return re;}
double imag () const {return im;}
以上两个类中的函数不改变类中的成员data变量,所以加const。
Note:不会改变类中的数据内容的函数,马上加上const。
有const修饰real函数和imag函数时,以下两种情况均可。
第二种情况为定义了一个const对象,表明该对象的data是不可改变的。
但是无const修饰的real函数和imag函数时,第二种情况创建对象时使用const了,表明创建的对象的data不可以改变;但是调用的无const修饰的real函数和imag函数表明real函数和imag函数可能会改data,前后矛盾,编译器会报错。 所以在函数不改变data时,切记加上const。
·参数传递: pass by value vs. pass by reference (to const)
尽量不要使用pass by value(传值)。
pass by reference(传引用):相当于传指针,引用在底层就是一个指针(C中可以传指针(即地址)),指针和引用在底层的实现是一样的。
pass by reference to const:
上图中黄色部分参数中const complex&,&表明pass by reference,加上const 表明 pass by reference to const,const 限制不可以改变引用所指向的data,如果改变,则编译出错。
pass by reference:
上图中黄色部分参数中ostream& 表明pass by reference,无const,表明该参数所在函数会对传进来的参数做改变,不然的话应该加const。
pass by value: value多大就整个传多大,将value压到栈中。
上图中黄色部分参数中double 没有&表明是pass by value。
NOTE:建立一个良好的习惯,所有的参数传递都尽量 pass by reference,尽量不要pass by value。
当然细节上如果传递value时,传递使用的存储空间小于传递引用使用的存储空间时,还是选择pass by value。
结论: 参数传递尽量都传引用,当传递的数据所占存储空间很小时,可以选择传值。
- 1.4参数传递与返回值(1)
- 1.4参数传递与返回值(2)
- JNI字符串参数传递与返回值
- 函数返回值与参数传递
- C函数参数传递与返回值传递
- Shell 与 SQLPLUS 的 交互 ---- 参数传递 返回值
- JNI学习二:字符串参数传递与返回值
- JNI学习二:字符串参数传递与返回值
- JNI学习二:字符串参数传递与返回值
- datatable前端传递参数与返回值格式说明
- android(NDK+JNI)---JNI字符串参数传递与返回值
- C++函数参数传递与返回值优化技巧
- 探讨c++函数中的参数传递与返回值(四) 浮点型值的参数传递与返回值
- 探讨c++函数中的参数传递与返回值(五) 复杂型值的参数传递与返回值
- 参数传递和返回值
- 探讨c++函数中的参数传递与返回值(三) 函数返回值
- 返回值与参数
- C++函数参数传递和返回值
- Ubuntu开启Samba服务
- [leetcode: Python] 110. Balanced Binary Tree
- 文件文件夹路径
- 矢量化编程
- Spring MVC 下设置默认访问页面的3种方式
- 1.4参数传递与返回值(1)
- 利用PHPMailerAutoLoad发邮件
- sql之left join、right join、inner join的区别
- PHP——AJAX 实时搜索
- studio 签名apk配置,方便第三方登录,支付等测试
- android中如何使用 XRecyclerView
- Log4Net使用详解(续)
- HashMap多线程不安全
- 阻塞与非阻塞 异步非阻塞