autodataming的个人博客分享 http://blog.sciencenet.cn/u/autodataming

博文

DrugPocket: c++ 引用 & const const

已有 2831 次阅读 2015-12-11 10:07 |个人分类:Pocket_C++|系统分类:科研笔记

-------------- http://www.cnblogs.com/xiaofengkang/archive/2011/05/16/2048262.html ------------------

总结:引用的好处之一就是在函数调用时在内存中不会生成副本。

引用总结

1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。

2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。

3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

4)使用引用的时机。流操作符<<>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。

 

 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

引用的声明方法:类型标识符 &引用名=目标变量名;

-------------------------


   bool Pocket::operator < (const Pocket& p) const
   {
               
       return this.n >p.n;
       
   }

重载运算操作符号,

第一个const 是为了保证2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。
第二个const是为了保证this 的安全性,不能修改this的成员变量



------

表示成员函数隐含传入的this指针为 const指针,决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);唯一的例外是对于 mutable修饰的成员。加了const的成员函数可以被非const对象和const对象调用,但不加const的成员函数只能被非const对象调 用




https://wap.sciencenet.cn/blog-950202-942557.html

上一篇:DrugPocket: c++ vector set multiset
下一篇:Drugpocket: c++ -> . 和perl中的. ->的区别
收藏 IP: 202.127.19.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 12:24

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部