栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

函数与const

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

函数与const

C++用const或者constexpr限定的指针或引用传递参数,可以避免函数对参数对象进行修改,既高效又安全。

用const限制函数的参数能够保证函数不对参数做任何的修改,但是形参传递实参的过程中,就是对象的复制过程,需要遵守顶层const以及底层const复制的规则。

1.形参是顶层const

一方面,const限定的参数不可修改;另一方面,实参传递忽略顶层const

即在调用函数时,可以忽略参数顶层const的限制,即向顶层const参数传递的实参既可以是常量对象,也可以是非常量对象。

int f(int i1, const int i2) {
//....................
}
const int x = 9;
int y = 100;
f(100, x);//x是常量实参
f(x, y);//y是非常量实参

由于在调用时,函数的顶层const被忽略,因此不能由顶层const区分函数形参,

在重载函数中应注意这个问题。

int f(int i1, const int i2) {
	//....................
}
int f(int i1, int i2) {
	//.....................
}

属于重载函数的重定义

2.形参是底层const

其实,常见的底层const就是const限定的引用和指针两种情况,他们的复制规则同样适用于函数的底层const参数,即

同类型的底层const能够被转换成相同的数据类型才能够被复制,而且非常量能够转换成常量,但常量不能够转换为非常量。

 

 要补作业了,先写到这555555

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号