社区
新手乐园
帖子详情
函数名和{}中间的const是用来修饰什么的?
zjumty
2007-04-13 10:06:33
最近在学C++,在书上看到有类似这样的语句:
const ResultType func_name(const Type &arg) const { .... }
一个语句中3个const.
第一个const用来修饰返回值
第二个const用来修饰参数值
那么第三个const用来修饰什么呢?
PS. 感觉C++比Java复杂多了!
...全文
495
15
打赏
收藏
函数名和{}中间的const是用来修饰什么的?
最近在学C++,在书上看到有类似这样的语句: const ResultType func_name(const Type &arg) const { .... } 一个语句中3个const. 第一个const用来修饰返回值 第二个const用来修饰参数值 那么第三个const用来修饰什么呢? PS. 感觉C++比Java复杂多了!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lisheng053758
2007-04-17
打赏
举报
回复
3.func_name(……) const :方法不可以修改调用它的对象的成员
lisheng053758
2007-04-17
打赏
举报
回复
第一个const 说明函数的返回值为常ResultType类型
第二个const 说明函数的参数为常Type的引用
第三个const 说明 func_name函数是一个类的const成员函数
只有const成员函数可以被const对象调用
编译器不容许const对象调用非const成员函数
飞哥
2007-04-17
打赏
举报
回复
const在拿,哪的值不让改就是了
guanwl
2007-04-16
打赏
举报
回复
那个const就象是java中的final函数.
不比java复杂呀.
你不会没用过java的final关键字吧.
balloonpig
2007-04-14
打赏
举报
回复
1.func_name(const Type &arg):在函数作用域中,不可以修改arg
2.const ResultType func_name(……):返回值不可以被修改
3.func_name(……) const :方法不可以修改调用它的对象
goodgod105
2007-04-13
打赏
举报
回复
mark
zjumty
2007-04-13
打赏
举报
回复
多谢各位!!
lidongri
2007-04-13
打赏
举报
回复
const ResultType func_name(const Type &arg) const { .... }
==========================================================
const ResultType:
函数返回一个const量
const Type &arg
函数内部对实参认为是const量,不修改其值
const { .... }
用于类的成员函数,说明成员函数不修改类的数据成员,okokok
xlbdan
2007-04-13
打赏
举报
回复
const ResultType func_name(const Type &arg) const
这个是一个返回值为const ResultType 类型的const成员函数
三个const的作用不一样
第一个是修饰返回值的,返回的是一个const ResultType ,也就是说,返回值不可以修改
例如
ResultType a,b; //定义两个对象
a.func_name()=b; //a.func_name()的返回值是ResultType类型的常对象,也
//就是一个const ResultType 所以对它进行赋值,a.func_name()=b,
//是非法的
第二个const是用来修饰形参的,const Type &arg表示arg是实参的一个常引用,那么在func_name这个函数里对arg进行任何修改都将是错误的
第三个const是用来表示该成员函数不能修改数据成员的,例如这个类里有一个成员叫int data;
那么
const func_name func_name() const
{
data++; //这是非法的,const成员函数不可以对数据成员做修改
}
walkingstick
2007-04-13
打赏
举报
回复
LZ,楼上的高手讲的很详细了哦~~~~~~~~
todototry
2007-04-13
打赏
举报
回复
const ResultType func_name(const Type &arg) const { .... }
==========================================================
const ResultType:
函数返回一个const量
const Type &arg
函数内部对实参认为是const量,不修改其值
const { .... }
用于类的成员函数,说明成员函数不修改类的数据成员,okokok
iu_81
2007-04-13
打赏
举报
回复
几点规则:
a.const对象只能访问const成员函数,而非const对象可以访问任意
的成员函数,包括const成员函数.
b.const对象的成员是不可修改的,然而const对象通过指针维护的对象却
是可以修改的.
c.const成员函数不可以修改对象的数据,不管对象是否具有const性质.它在
编译时,以是否修改成员数据为依据,进行检查.
e.然而加上mutable修饰符的数据成员,对于任何情况下通过任何手段
都可修改,自然此时的const成员函数是可以修改它的…
ouyh12345
2007-04-13
打赏
举报
回复
在函数内,不应改变参数的内容
wangzhangyong411
2007-04-13
打赏
举报
回复
第一个是修饰返回值是个不能被变化的
第二个是说,参数是不能被变化的
第三个是说 如果这个函数在类里面 那么这个类里面的值不能被变化
SF
iu_81
2007-04-13
打赏
举报
回复
修饰类成员函数
渗透测试 ( 3 ) --- Metasploit Framework (MSF)
Metasploit专业版和精简版的主要差别在于专业版上面集成了全自动攻击模块,通过远程API集成网络分割测试模块、标准基线审计向导模块、闭环漏洞验证优先处理功能、动态载荷规避防病毒解决方案、钓鱼意识管理和鱼叉式网络钓鱼模块、对OWASP Top 10漏洞的Web应用程序测试模块、高级命令行和Web界面的选择模块。但是,专业版是必须要付费的,所以除非用到非个人的功能,否则没有必要去使用专业版,而且,专业版和精简版的渗透攻击模块是一样的。.........
WSL2 Ubuntu 安装Hermes Agent
文章摘要:Hermes Agent安装与使用指南 本文详细记录了开源AI代理Hermes Agent的完整安装流程及常见问题解决方案。主要内容包括:1) 提供官网、镜像站及文档链接;2) 分步骤说明Ubuntu/WSL2环境下的安装过程,包含网络问题处理方案;3) 演示手动Git安装和国内镜像安装两种方法;4) 展示交互式聊天、控制台管理、日志查看等核心功能;5) 提供网络代理配置、API连接失败等典型问题的排查方法。关键点:需通过手动Git克隆解决仓库拉取超时问题,安装后需保持网络畅通才能正常使用AI功能
Azure数据工程师入门项目:端到端ETL流水线实战(ADF+Synapse+Power BI)
ETL流水线是数据工程的核心能力,其本质是通过抽取(Extract)、转换(Transform)、加载(Load)实现数据从源系统到分析层的可靠流转。在Azure云平台中,这一过程依托Data Factory编排调度、Synapse Serverless SQL Pool执行轻量计算、Power BI提供可视化消费,形成低门槛、低成本、可演示的闭环实践路径。该方案规避Databricks等高学习成本组件,专注批处理稳定性、凭据安全(Key Vault集成)、成本可控(月均$5内)与面试可验证性——尤其适合A
工作中使用到的单词(软件开发)
1.エイリアス alias 别
名
powershell使用 get-help 命令时,会得到与此命令 相关(别
名
)的命令 2.プロキシ proxy 代 理 3.プロモート promote 促进,提升 开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................
文件柜_工具柜文件柜.rar
文件柜_工具柜文件柜.rar
新手乐园
33,315
社区成员
41,769
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章