版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++程序设计基础
Q&A第七章北京邮电大学信通院方莉
mrs.fangli@
=运算符重载编辑ppt=运算符重载编辑ppt4const使用const使用常量常指针指针常量常引用常对象常数据成员常成员函数编辑ppt5const使用const使用常量:constfloatPI=3.14;常指针constint*iPtr1;或intconst*iPtr2;指针常量:int*constiPtr3;常引用:constint&A;或intconst&A;常对象:constStudents;常数据成员:constintm;常成员函数:voidprintf()const;编辑pptconst使用const作用
①可以定义const常量,例如:const
int
Max=100;
int
Array[Max];
②便于进行类型检查,例如:void
f(const
int
i)
{
.........}
编译器就会知道i是一个常量,不允许修改;③可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。例如上例,如果在函数体内修改了i,编译器就会报错;例如:
void
f(const
int
i)
{
i=10;//error!
}
编辑pptconst使用const作用④为函数重载提供了一个参考。
class
A
{
......
void
f(int
i)
{......}
//一个函数
void
f(int
i)
const
{......}
//上一个函数的重载
......
};
……编辑pptconst使用①修饰一般常量,常数组,常对象修饰符const可以用在类型说明符前,也可以用在类型说明符后。例如:int
const
x=2;或const
int
x=2;int
const
a[5]={1,
2,
3,
4,
5};
或
const
int
a[5]={1,
2,
3,
4,
5};class
A;
const
A
a;
或
A
const
a;
编辑pptconst使用②修饰指针const
int
*A;
或
int
const
*A;
//const修饰指向的对象,A可变,A指向的对象不可变;int
*const
A;
//const修饰指针A,A不可变,A指向的对象可变;const
int
*const
A;
//指针A和A指向的对象都不可变。编辑pptconst使用③修饰引用const
double
&
v;
该引用所引用的对象不能被更新。④修饰函数的返回值:const修饰符也可以修饰函数的返回值,是返回值不可被改变,格式如下:
const
int
Fun1();
const
MyClass
Fun2();
编辑pptconst使用⑤修饰类的成员函数:const修饰符也可以修饰类的成员函数,格式如下:
class
ClassName
{
public:
int
Fun()
const;
.....
};
这样,在调用函数Fun时就不能修改类里面的数据。编辑pptconst使用⑥修饰类的数据成员:const修饰符也可以修饰类的数据成员,格式如下:classA{private:
constintsize;}const数据成员在某个对象的生存期内是常量,对整个类来说是可变的;const数据成员不能在类声明中初始化,只能在类的构造函数的初始化列表中进行。
编辑ppt13const使用
classA{
private:
const
int
c3
=
7;
//error
static
int
c4
=
7;
//error
static
const
float
c5
=
7;
//error
......
};
编辑ppt14#include<iostream>usingnamespacestd;classA{public:A(inti);voidprint();
constint&r;private:constinta;
staticconstintb; //静态常数据成员};constintA::b=10; //静态常数据成员在类外说明和初始化A::A(inti):a(i),r(a){} //常数据成员只能通过初始化列表来获得初值const使用编辑ppt15const使用const放置的位置①constintb=500;int
constb=500;[1]②constint*a=&b;或intconst*a=&b;[2]③int*consta=&b;[3]④voidfun1()const;[4]编辑ppt16const使用const使用如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。编辑ppt17const使用[1]和[2]的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容进行更改操作,如不能*a=3
;[3]指针本身是常量,而指针所指向的内容不是常量,这种情况下不能对指针本身进行更改操作,如a++是错误的;[4]指针本身和指向的内容均为常量。[5]fun1()为类的常成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程管理领域职位晋升路径分析
- 零售业门店理财顾问服务流程安排
- 网络技术公司数据专员招聘分析
- 服务请求的响应与处理时效性提升计划
- 机构研究报告-小马智行-市场前景及投资研究报告:自动驾驶商业化Robotaxi未来可期
- 低血糖患者的护理
- 智能家居产品交互设计要点
- 房产销售面试准备攻略及话术
- 新兴企业客户管理岗的培训与工作技巧解读
- 酒店预订与接待员职位晋升手册
- 2025年黑农垦单招试题及答案
- 购房预付款合同协议范本
- 超声引导下动静脉内瘘穿刺技术
- 2025年北京市北京市海淀区海淀街道国民经济和社会发展第十五个五年规划
- (高清版)DB62∕T 4668-2022 农村单罐直通式和积肥式户用卫生旱厕建设技术规范
- 传感器应用技术 课件全套 梁长垠 项目1-8 传感器认知与测量系统搭建- 无线传感器网络应用电路设计与调试
- 成人高尿酸血症与痛风食养指南(2024年版)解读
- DB13(J)-T 8349-2020 城市精细化管理标准(2024年版)
- 《AIGC应用实战:写作、绘图、视频制作、直播》-课件全套 王翎子 第1-9章 认识AIGC -即创的使用方法
- 湖南省业主大会和业主委员会指导细则修订-全文及示范文本
- 2023年山东铝业职业学院单招综合素质考试题库附答案
评论
0/150
提交评论