- 2
- 0
- 约9.87千字
- 约 48页
- 2019-08-12 发布于福建
- 举报
8.8 引用 8.8.1 引用标识符 C++中用 可派生出一个引用类型,即产生同一变量的另一个名字。引用在C++中非常普遍,主要用途是为用户定义类型指定操作,还可用于函数参数的传递,对引用型参数的操作,就是对实际参数的操作。例如: main() { int num=50; int ref=num; ref+=10; printf(num=%d,num); } 此程序的运行结果为: num=60 8.8.2 const和volatile const 和volatile是类型修饰符。在变量说明语句中,const 用于冻结一个变量,使其在程序中不能被修改。在用const 说明变量时, 必须对该变量进行初始化。用volatile修饰的变量,虽然在一段程序中没有明显被改动,单这个变量的值也会因为程序外部的原因(如中断等)而改变。 8.9 常类型 8.9.1 常引用 如果在说明引用时用const修饰,则被说明的引用为常引用。常引用所引用的对象不能被更新。如果用常引用做形参,便不会意外地发生对实参的更改。常引用的说明形式如下: const 类型说明符 引用名; 例如: const int n; 其中,n是一个常引用,它所引用的对象不会被更新。如果出现: n=123; 则是非法的。 常引用作形参,在函数中不能更新它所引用的对象,因此对应的实参不会被破坏。 8.9.2 常对象 常对象是指对象常量,定义格式如下: 类名 const 对象名; 或者 const 类名 对象名; 在定义常对象时必须进行初始化,而且不能被更新。只有常成员函数才能操作常对象,没有使用const关键词说明的成员函数不能用来操作常对象。 8.9.3 常对象成员 常对象成员包括常成员函数和常数据成员。 1. 常成员函数 使用const关键词说明的函数为常成员函数,常成员函数说明格式如下: 类型 函数名(参数表) const; 对于常对象成员需要注意以下几点: (1)const是函数类型的一个组成部分,因此在实现部分也要带const关键词。 (2)常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。 (3)如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,而不能调用其他成员函数。 (4)const关键词可以参与区分重载函数。例如,如果在类中有说明: void print(); void print() const; 则这是对print的有效重载。 2. 常数据成员 就像一般数据一样,类的成员数据也可以是常量和常引用,使用const说明的数据成员为常数据成员。如果在一个类中说明了常数据成员,那么构造函数就只能通过初始化列表对该数据成员进行初始化。 类的成员函数也可以另外定义,而在类定义时给出函数头。 例8-2的成员函数可说明如下: void Location::init(int x,int y) { ??? X=x; ??? Y=y; }//将x,y的值分别赋给X,Y int Location::GetX() { ??? return X; } int Location::GetY() { ??? return Y; } 一个类的说明可分为定义性说明和引用性说明两种,引用性说明仅说明类名。例如:class Location; 引用性说明不能用于说明类的变量,但可说明指针,例如: class myClass{ ??????? int i; ??? myClass member;//错 ??? myClass *pointer;//对 }; 注意:在类定义体外定义成员函数时,需在函数名前加上类域标记,因为类的成员变量和成员函数属于所在的类域,在域内使用时,可直接使用成员名字,而在域外使用时,需在成员名外加上类对象的名称。 8.1.3 类和结构 结构是类的一种特例,在结构中也可以定义成员函数。定义结构时只要把关键字class 改为struct即可。 class Location { private: ??? int X,Y; public: ??? void init(int x,int y) ??? { ??????? X=x; ??????? Y=y; ??? } int GetX() ??? {??? return X;??? } int GetY() ??? {??? return Y;??? } }; 结构和类的唯一区别是:在未指定访问权限时,结构中的成员被默认为公有的而类中的成员被默认为
您可能关注的文档
- 2019年部编版七年级数学上学期期末复习总结卷(1)(附答案).doc
- 三十四中2019年上学期九年级教学质量检测.doc
- 伊索寓言《牧童和狼》教案设计.doc
- 初中化学专题(1-6)复习总结学案(无练习).doc
- 寒假社会实践活动方案设计.doc
- 2019届高三惠州第一次模拟考试生物试卷.doc
- 简易方程知识点讲解梳理.docx
- 2019春季数学竞赛活动设计方案.doc
- 外墙抹灰技术交底-.docx
- 新常态下经济发展知识附录.docx
- 2025年辽宁建筑职业学院单招职业适应性考试题库附参考答案详解【典型.docx
- 2025年辽宁医药职业学院单招职业适应性考试题库含答案详解【满分必刷.docx
- 2025年家用康复辅具行业分析报告.docx
- 2025年换电模式十年技术创新发展报告.docx
- 2026年智慧冷链物流温湿度精准控制技术新兴技术融合分析报告.docx
- 2025年储能电站五年挑战:电网调频技术瓶颈报告.docx
- 2025年豆制品出口十年发展报告.docx
- 2025年同城配送行业即时服务创新报告.docx
- 2025年蜂产品功能性食品研发十年趋势报告.docx
- 2025至2030中国有线数字电视增值业务中国有线数字电视增值业务报告行业市场发展现状研究及投资战略咨询报告.docx
最近下载
- 【做题本】平板版25考研数学周洋鑫考点全刷基础篇·线代.doc VIP
- 2024-2025学年河南省部分学校联考高二下学期开学检测语文试题(解析版).docx VIP
- 2026马年春节小学生主题班会课件(共21张PPT).pptx VIP
- 青海民间小调.pdf
- 2025 年考研数学三概率论与数理统计专项:易错点练习题.docx VIP
- 考研数学线代基础阶段的复习方法.docx VIP
- 安徽省芜湖市无为市部分学校2025-2026学年八年级上学期1月期末考试语文试卷(含答案).docx VIP
- 安徽省芜湖市无为市部分学校2025-2026学年八年级上学期1月期末考试语文试卷(含答案).pdf VIP
- 2025年考研数学《线代》专项训练试卷.docx VIP
- 2025年考研数学三概率统计专项训练冲刺押题试卷(含答案).docx VIP
原创力文档

文档评论(0)