初始化参考C++

问题描述:

我最近开始学习C++并偶然发现了这个问题。 请原谅我,如果这听起来愚蠢的,但为什么我们不能通过初始化参考C++

int r= 20; 
int &ref = r; 
ref(20); 

初始化值参考变量虽然没有使用它作为一个参考变量时的20幅作品初始化值的这种方法。

IDE:C++ 11

这是为什么?

+0

在你的例子中,它是在第2行初始化的。对于第3行,你可以用'ref = 20'指定一个新值。 – wally

+0

还是你想问你为什么不能'int&ref(20)'? – wally

+0

@Muscampester我知道我们可以使用'ref = 20',但我没有得到它,为什么我们不能使用'ref(20)'。 – DatDankMeme

尽管当不使用它作为参考变量时,此初始化值为20的方法有效。

它在什么意义上起作用?现在编译器ref(20);看起来像一个函数调用,如果你将int &ref更改为int ref,你仍然会得到相同的错误。

我想你的意思是int r(20);确实有效。在引用的情况下,它们必须首先绑定到它们所引用的变量,这使得不可能绑定到变量并且在相同的地方赋值 - 如果这是您所要求的。

+0

非常感谢,我明白我做错了什么。当我初始化'r(20)'时,编译器认为我正在给一个函数传递一个值。 – DatDankMeme