求c++大神指点,为什么这样写编译也能够通过,顺便问一下这种情况是什么意思。

 我来答
庄政警
2017-10-31 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:879万
展开全部
change函数的定义和声明是不匹配的(声明有参数,定义里没有),所以编译器会当作是重载的change函数,于是给出红线提示,就是说这个红线提示是二义性提示,这是个实时文本语法提示。但是change后面没有括号,那么这个change就仅仅是个无聊的地址(函数名代表函数地址),不会产生实际的函数调用,会被优化掉,所以可以通过编译,但是编译期会有警告。
如果你把括号加上,就不能通过编译了,因为有实际的函数调用了,却找不到没有参数的change()声明
物理公司的
2017-10-31 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1365万
展开全部
可以通过编译,会有警告
warning: statement is a reference, not call, to function `change',
语句不会被调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chiconysun
2017-10-31 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2572万
展开全部
编译不能通过吧,主函数change下面还有红线提示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式