我对带有引用的变量声明感到困惑。我读了一些页面,这让我更加困惑,所以更喜欢在这里问。

我在一次C++面试中被问了4个问题;其中哪一个是错的,为什么?

(1) int & n;
(2) const int & n=15;
(3) float x; const int & n =x;

有人能解释一下这是不正确的,为什么?

有帮助吗?

解决方案

tl;dr引用必须在声明时初始化(直接或在类初始化中)。

int& n;

这留下了参考 n 未初始化。引用必须在声明时初始化.

const int& n = 15;

这里没有错。对a的引用 const int 被初始化为 15.

float x; const int& n = x;

float 是好的,但不被初始化是个坏主意。参考书 n 被初始化为 x (浮点数/积分转换适用),这也不是一个好主意。

其他提示

必须始终初始化引用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top