- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用C++最多的毛病就是这些可以解决收集方法.docx
C++各种怪毛病亲是不是也染上了无法解决的事看看这个专业的C++代码都大量使用了引用。C++的引用是另外一个变量的别名。对引用的修改都会改变该引用所指向变量的值。可以把引用看成是一种隐式的指针,它可以免除获取变量地址和对指针解除引用的麻烦。也可以把引用看作是原变量的另一个名字。可以创建独立的引用变量、使用类中的引用数据成员、接受作为传递给函数和方法的参数、从函数和方法返回引用。万能营销?万能群发(1).引用变量:必须在创建时对其初始化。int x = 3;int xRef = x;xRef = 10;//x的值修改为10如果在类外声明的引用变量而不初始化,这是不允许的。int yRef; //error必须在分配引用时对其初始化。通常,引用是在声明是分配的,不过引用数据成员可以在包含该成员的类的初始化列表中进行初始化。除非引用指向一个const值,否则不能创建指向未命名值的引用。int unnameRef = 5 ; //errorconst int unnameRef = 5; ok引用总是指向初始化时指定的那个变量。一旦创建引用,就不能再修改了。int x=3,y=5;int xRef = x;xRef = y; //xRef引用没有指向y,仍然是指向x,只是x的值修改成y的值5了。你或许希望在赋值时取y的地址来绕过这条限制:int x=3,y=5;int xRef = x;xRef = y; //error ,y的地址是指针,而xRef是int变量的引用,而不是指针的引用对于下面会怎么样呢?int x=3,y=5;int xRef = x;int yRef = y;xRef = yRef; //xRef引用没有指向y,仍然是指向x,只是x的值修改成y的值5了。综上所述:引用在初始化后就不能修改而指向别的变量,只能修改其指向的变量的值。指针引用和引用指针:下面是一个指向int指针的引用的例子int *intP;int *ptrRef = intPptrRef = new int;*ptrRef = 5;注意,取引用的地址和其引用所指向的变量的地址,这二者结果是一样的。int x =3;int xRef = x;int *xPtr = xRef;//等价于int *xPtr = x*xPtr = 100;注意:不能声明指向引用的引用,也不能声明引用指针(指向引用的指针)。int x =3;int xRef = x;int doubleRef = xRef;//errorint *refPtr = xRef;//error(2).引用数据成员:类的数据成员可以是引用。但是如果引用不指向其他某个变量,这样的引用是无法存在的。因此,必须在构造函数初始化列表中初始化引用数据成员,而不是在构造函数体中完成初始化。(3).引用参数:C++不常使用独立的引用变量或者引用数据成员。引用最通常的用法是作为函数和方法的参数。void swap(int first,int second){??int temp = first;??first = second;??second = temp;}而下面的函数达不到效果void swap(int first,int second){??int temp = first;??first = second;??second = temp;}我们知道不能使用常量来初始化引用变量,与此类似,不能把常量作为实参传递给采用传引用为参数的函数。swap(3,5); //error来自指针的引用:如果把一个指针传递给函数或方法,而该函数或方法需要的是一个引用。在此种情况下,简单地对指针进行解除引用,从而把指针转化为引用。int x = 3,y=5;int *xp = x,*yp = y;swap(*xp,*yp);传值和传引用:如果想修改参数,并希望这些修改反映到函数或方法的实参变量上,此时就应该采用传引用。但是,不应该限制为只是在这种情况下才采用传引用。传引用可以避免复制函数实参,在某些情况下能带来二个好处:a. 效率。复制大的对象和结构时可能会花费很长的时间。传引用只向函数或方法传递指向对象或结构的指针。b. 正确性。不是所有的对象都允许传值。即使允许传值,也不见得就能正确地支持深复制。我们知道要支持深复制,有动态分配内存的对象必须提供定制的复制构造函数。如果想发挥这二个优点,同时不想改变原来的对象,可以在前面加上const。传引用的这些优点意味着,对于简单内置类型,不需要修改实参,就应当使用传值。在其他的情况下可以考虑传引用。产品推广软件?企业推广软件(4).引用返回类型:从函数或方法返回引用。这样做的主要原因是出于效率的考虑。不是返回一个完整的对象,而是从函数或方法返回对象的引用,这样记忆可以避免不必须要的复
您可能关注的文档
- 大学英语实验教程,..实验案例--图标描述——学校吸烟.doc
- 给排水科学与工程专业实习报告 .doc
- 2017年动物医学专业未来就业前景形势分析解读(原创).doc
- 关于瑞典、芬兰企业债务重组情况的考察报告【精选公文】.docx
- [信息与通信]师宗烟草弱电智能化系统工程-目录.doc
- 基于本体的远程教学辅助系统的设计与实现-毕业论文.doc
- 2016-2017年航空机电设备维修 学生实习报告(总结).doc
- 幼儿园小班活动区教案.doc
- 复件 古典文献学概论.doc
- 湖南省2017年临床执业助理医师:肾小球血流量(生理学)考试题.doc
- 2025年大理农林职业技术学院单招(语文)测试题库附答案.docx
- 2025年河南医学高等专科学校单招(语文)测试模拟题库必威体育精装版.docx
- 耳聋相关疾病与听力图分析.ppt
- 缺血性卒中的规范化诊治.ppt
- 2025年抚顺师范高等专科学校单招语文测试模拟题库必威体育精装版.docx
- 2025年西藏那曲地区单招(语文)测试题库附答案.docx
- 2025年重庆机电职业技术大学单招(语文)测试模拟题库附答案.docx
- 2025年福建省厦门市单招语文测试模拟题库必威体育精装版.docx
- 2025年天津职业技术师范大学单招语文测试模拟题库必威体育精装版.docx
- 2025年萍乡卫生职业学院单招语文测试题库附答案.docx
最近下载
- 活性肽在运动营养补充剂中的作用.docx VIP
- 中考数学总复习方程与不等式第7讲分式方程(00001)省公开课一等奖百校联赛赛课微课获奖课件.pptx
- 四川省高职单招公共管理与服务类《公共关系》历年考试真题试题库(含答案).docx
- 人教版一年级数学上册第三单元达标检测卷(含答案).pdf VIP
- (正式版)-B 5768.2-2022 道路交通标志和标线 第2部分:道路交通标志.docx VIP
- 程楼小学师德师风警示教育活动实施方案.pdf VIP
- 山东省青岛市2022-2023学年高三上学期期初调研检测数学试题(原卷版).docx VIP
- 马小跳玩数学公开课获奖课件百校联赛一等奖课件.pptx
- 静脉留置针时间延长PDCA.ppt
- 消防安全知识培训课件(2023必威体育精装版).pptx
文档评论(0)