位置: IT常识 - 正文

c++常见关键字总结(c++32个关键字详解)

编辑:rootadmin
前言 ​本系列是对常见的重要c++关键字的备忘录,也许未注意到某些用法,但会不断完善。某些关键字不适合出现于此,在后面的篇章如分析类,STL,异常时会讲到。如有瑕疵,还请不吝赐教! const const的作用:被const修饰的值理论上不能改变,为只读语义,且因为创建后const对象无法改变,需 ... 前言

推荐整理分享c++常见关键字总结(c++32个关键字详解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:c++语言中的关键字,c++语言中的关键字,c++20 关键字,c++语言中常用的关键字含义,c ++关键字,c++语言中的关键字,c++常用关键字,c++关键字及其含义,内容如对您有帮助,希望把文章链接给更多的朋友!

​本系列是对常见的重要c++关键字的备忘录,也许未注意到某些用法,但会不断完善。某些关键字不适合出现于此,在后面的篇章如分析类,STL,异常时会讲到。如有瑕疵,还请不吝赐教!

const

const的作用:被const修饰的值理论上不能改变,为只读语义,且因为创建后const对象无法改变,需要在定义阶段必须为他赋初值,初值可以任意复杂的表达式,修饰的常量只能作用于当前模块

但const并非完全不能改变,在定义变量时加上volatile关键字,通过指针间接修改。这是因为加上volatile编译器不会进行优化,以下例子中*pt和a都是从堆栈也就是内存中取值;而不加上volatile,编译器将进行优化,节省访问内存的时间,输出a的值时将直接从符号表取出

在后面会提到volatile关键字,作用是告诉编译器不要对此句进行优化,每次都去内存取值

volatile const int a = 1;int* pt = (int*)(&a);*pt = 100;

const 可以定义编译期常量,也可以定义运⾏期常量

默认情况下,const对象仅在文件内有效,多个文件出现了同名的const对象,相当于在不同文件中分别定义了独立的对象

不能使用字面值初始化一个非常量引用.因为引用是变量的别名

int& a = 0;//错const int& b = 1;//对

指针常量(顶层const)表示指针本身是个常量,一旦指定了对象,便不可改变,且指针必须在定义时初始化

形式:

数据类型* const 指针 = 变量名

例子:

int a = 0;int b = 1;int* const pt = &a;pt = &b;//错*pt = 1;//对

常量指针(底层const)定义一个指针,该指针不可以修改其所指对象的值

c++常见关键字总结(c++32个关键字详解)

形式:

数据类型 const * 指针 = 变量名const 数据类型* 指针 = 变量名

例子:

int a = 0;const int* p1 = &a;int const* p1 = &a;*p1 = 10; //错a = 10; //对函数

​当形参为const时,实参可传入const类型,也可传入不为const类型,也就是说当用实参初始化形参时,顶层const会被忽略掉。不能改变形参的值

//重复定义函数void fcn( int i );void fcn( const int i ){ i == 2;//错}int a = 0;const int b = 1;fcn( a );//对fcn( b );//对

​一个拥有顶层const的形参无法和没有顶层的const的形参区分开,因此当我们传入区别只是是否为const类型的对象时,在函数中是等价的。但是如果形参是引用或指针,此时const为底层,因此可以区别

例子:

//顶层const,两个函数等价int func1( A );int func1( const A );//底层const,两个函数重载int func1( A* );int func1( const A* );类

​const类对象不可以调用非const成员函数,而普通类可以调用const成员函数

为什么不可以呢?因为this指针是指针常量但并不是常量指针,其并不具备底层const,也就是它的含义是 A* const this,如果成员函数改变了类对象的成员而类对象是const,这是不合理的

const A a;//func为a中的非const成员函数a.func();//错

​在类的成员函数参数本来带有一个隐藏的this指针,这个指针属于指针常量,若再在参数后面跟一个const,这个指针不仅是指针常量,还是常量指针,若函数并不改变this所指对象,我们应尽可能将this设置为常量指针

类型:const Class* const this

例子:

class A{public: int intFunc() const { return i1 };private: int i = 0;}

​类的成员函数返回*this,返回类型为&类对象并且成员函数为const类型,需要注意,我不可以用这样的成员函数的返回值对象来调用其他要改变类对象的值的函数,因为此时成员函数的返回值为常量对象

例子:

class A{public: A& set( char c ) { //改变类对象的成员的值 return *this } A& display() const { //展示类对象的成员 return *this; }}//调用A a;a.display().set('c');//错,因为此时display返回的常量对象,而set会修改对象的成员的值

const成员函数有两个作用:

为提升程序的健壮性,只要这个成员函数不会让类对象改变,我们就要将其设计为const成员函数为了配合const类对象

​成员函数是否为const,是两个函数,也就是其可以重载。因为带const版本的主要是提供给const类对象调用

//对。const成员函数可以重载void func1() const;void func1();//调用非const版本A a;a.func1();const A ca;ca.func1(); //调用const版本

​若const成员函数返回类型是引用类型,则必须是const引用

class A{public: int& func1() const { return val; }//错,这里this指针为常量指针,而返回值非常量private: int val = 1;}

​构造函数不可以

本文链接地址:https://www.jiuchutong.com/zhishi/310183.html 转载请保留说明!

上一篇:python中如何基于numpy创建矩阵(基于python语言)

下一篇:Js如何存储执行上下文(js怎么存储数据)

  • 2017年最有效的网络推广方法(2017年最有效的中药降糖)

    2017年最有效的网络推广方法(2017年最有效的中药降糖)

  • 宝马小组件苹果手机怎么添加(宝马小组件苹果代码)

    宝马小组件苹果手机怎么添加(宝马小组件苹果代码)

  • 苹果12热点的打开方式是什么(苹果12热点打开了为什么电脑搜不到)

    苹果12热点的打开方式是什么(苹果12热点打开了为什么电脑搜不到)

  • 为什么苹果手机刷朋友圈一卡一卡的(为什么苹果手机的手电筒打不开了)

    为什么苹果手机刷朋友圈一卡一卡的(为什么苹果手机的手电筒打不开了)

  • 正相关和正比的区别(正相关与成正比)

    正相关和正比的区别(正相关与成正比)

  • 有线耳机连接不上手机(有线耳机连接不稳定怎么办)

    有线耳机连接不上手机(有线耳机连接不稳定怎么办)

  • qq保存的视频为什么相册中找不到(QQ保存的视频为什么看不了)

    qq保存的视频为什么相册中找不到(QQ保存的视频为什么看不了)

  • 微信可以查看访客记录吗(微信可以查看访问记录吗)

    微信可以查看访客记录吗(微信可以查看访问记录吗)

  • 陌陌素材包下载失败是什么原因(陌陌素材包下载失败是什么意思)

    陌陌素材包下载失败是什么原因(陌陌素材包下载失败是什么意思)

  • 手机暗怎么调回来(手机暗度怎么调最暗)

    手机暗怎么调回来(手机暗度怎么调最暗)

  • 美图秀秀图片配文字怎么弄(美图秀秀图片配音怎么弄)

    美图秀秀图片配文字怎么弄(美图秀秀图片配音怎么弄)

  • cmccweb是什么网络(cmcc-wxkd是什么网)

    cmccweb是什么网络(cmcc-wxkd是什么网)

  • 小米手表触摸屏没反应(小米手表触摸屏失灵修复小技巧)

    小米手表触摸屏没反应(小米手表触摸屏失灵修复小技巧)

  • 钉钉直播回放橙色是什么意思(钉钉直播回放在哪)

    钉钉直播回放橙色是什么意思(钉钉直播回放在哪)

  • 录屏大师一次能录多久(录屏大师能中途暂停吗)

    录屏大师一次能录多久(录屏大师能中途暂停吗)

  • 华为扬声器沙哑声音了怎么办(华为扬声器沙哑怎么回事)

    华为扬声器沙哑声音了怎么办(华为扬声器沙哑怎么回事)

  • 微信解锁密码忘记了怎么解除(微信解锁密码忘记了打不开怎么办)

    微信解锁密码忘记了怎么解除(微信解锁密码忘记了打不开怎么办)

  • win7是什么操作系统(win7属于什么类型的操作系统)

    win7是什么操作系统(win7属于什么类型的操作系统)

  • 小米耳机充电充不进去(小米耳机充电充不到100)

    小米耳机充电充不进去(小米耳机充电充不到100)

  • 华为手机怎么强制关机(华为手机怎么强制)

    华为手机怎么强制关机(华为手机怎么强制)

  • vivoz5x什么时候上市(vivoz5x什么时候更新originos2.0)

    vivoz5x什么时候上市(vivoz5x什么时候更新originos2.0)

  • 耳机漏音怎么解决(耳机漏音怎么办)

    耳机漏音怎么解决(耳机漏音怎么办)

  • 苹果11怎么调闪光灯(苹果11怎么调闪光灯亮度)

    苹果11怎么调闪光灯(苹果11怎么调闪光灯亮度)

  • 淘宝预售订单在哪里(淘宝预售订单可以退款吗)

    淘宝预售订单在哪里(淘宝预售订单可以退款吗)

  • 明明有网为什么抖音看不了(明明有网为什么打不开网址)

    明明有网为什么抖音看不了(明明有网为什么打不开网址)

  • vivox27什么时候上市的(vivox27什么时候出厂的)

    vivox27什么时候上市的(vivox27什么时候出厂的)

  • 智能养老模式的特点(智能养老模式的前景)

    智能养老模式的特点(智能养老模式的前景)

  • 腾讯视频的缓存文件在哪里(腾讯视频的缓存路径怎么改)

    腾讯视频的缓存文件在哪里(腾讯视频的缓存路径怎么改)

  • Redmi K20 Pro出厂系统内核(红米k20pro出厂价格)

    Redmi K20 Pro出厂系统内核(红米k20pro出厂价格)

  • win10中剪贴画在哪里(win10剪贴画在word哪里)

    win10中剪贴画在哪里(win10剪贴画在word哪里)

  • 去实体店装win10多少钱2019(去实体店装win10专业版多少钱)

    去实体店装win10多少钱2019(去实体店装win10专业版多少钱)

  • 独资企业赚的钱全是老板的吗
  • 撤销增值税申报流程
  • 缴纳增值税影响损益吗
  • 纳税调整项目包括哪些?请简单列举
  • 电子商业汇票怎么兑现
  • 免抵退税申报资料情况表在哪下载
  • 城建税有没减半
  • 应收账款让售账务处理
  • 公司并购股权转让协议
  • 其他流动资产的构成
  • 计提企业年度所得税
  • 样品不收钱怎么做会计分录
  • 开的是全额发票但是有分包如何做账务处理?
  • 固定资产处理申请
  • 一般纳税人的账户是基本账户吗
  • 三证合一后纳税人识别号和信用代码一样吗
  • 收到的税费返还减少的原因
  • 进项税转出如何做分录
  • 什么叫抵免
  • 结转存货跌价准备冲减主营业务成本
  • 诉讼费如何记账
  • 什么情况下出租人可以解除合同
  • php实现分页功能的方法
  • wordpress相关文章插件
  • 赠送积分有两种形式
  • 担保公司的会计分录
  • 华为鸿蒙系统支持苹果手表吗
  • 辞退补偿款怎么算
  • 母公司收取子公司利润交增值税吗
  • 暂估入账的原材料有成本差异吗
  • framework4.0怎么打开
  • 费用报销单怎样粘贴
  • 前端promise封装
  • ORB_SLAM2+kinect稠密建图实战项目总结
  • 不仅仅是喜欢原唱
  • 计提坏账准备不会影响应收账款账面价值
  • 学电脑网站
  • 固定资产升级账务处理
  • 医疗机构销售药品能否加价
  • 期末进行存货清查
  • 记账软件多少钱一套
  • 以前年度多计管理费用怎么调整
  • 金税盘 申报
  • 增值税销项税额抵减账务处理
  • 出售投资所得属于什么科目
  • 建筑公司异地施工
  • 房地产购买流程
  • 收到法院退回的诉讼费怎么做账
  • 写字楼里的公司怎么赚钱
  • 红字冲销表示负数吗
  • 预付款已经开了发票未到货要怎么做账
  • 企业当年实现的净利润即为企业当年可供分配的利润
  • 票据包括哪些
  • 买一送一会计分录怎么写
  • 平台使用费属于什么服务
  • 各单位都需设置的是
  • 利用sql函数生成数据
  • 注册表被锁定后的处理方法
  • windows server 2003 r2 序列号
  • 运行linux
  • mac自动操作怎么停止
  • helpcfg是什么文件
  • win7立体声混音怎么设置
  • centos配ip的方法
  • win10周年纪念版
  • 同步数据和异步数据的区别
  • js函数详解
  • javascript按位与
  • Python内置函数的应用操作
  • 利用Matplotlib对一组数据进行分析
  • 批处理文件如何运行
  • unity3d开发流程
  • jquery回车触发事件
  • JQuery Ajax WebService传递参数的简单实例
  • android基础知识入门
  • js做时钟让钟表转起来
  • 广东电子税务局电话
  • 盐城企退人员养老金调整新标准
  • 煤炭资源税税率选煤税率多少黑龙江
  • 证券行业的税务问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设