int T(int & a = 5){….} —-对吗?

先来看一段简单的C++代码:

#include <iostream>

using namespace std;

int T(int & a = 5)
{
	a = 3;
	return 0;
}

void main()
{
	int a = 0;
	T(a);
	cout<<a<<endl;
}

经过编译,发现根本通不过。这是为什么呢?

我们都知道,“&”既可以作取地址符,又可以作引用符,但是程序中使用了“int T(int & a = 5)”,那么它到底是取地址符还是引用符呢?

可能你会说,这是一个引用符呀,只是默认值是5。最初,我这样写代码的时候也是这样认为的,但是编译器却指出了错误。

 

没办法,我只好给自己一个勉强的解释:带缺省值的参数不能作引用类型,作为引用类型的参数不能有缺省值,哈哈,只能这样想了!

修改成下面的代码就可以通过编译了:

1. int T(int a = 5)
2. int T(int & a)

 

原文链接: https://www.cnblogs.com/joeblackzqq/archive/2010/11/08/1872133.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    int T(int & a = 5){....} ----对吗?

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/17098

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午5:34
下一篇 2023年2月7日 下午5:37

相关推荐