在某些地方我见过这样声明的变量
const int &var1;
extern int & var2;
这些变量在其他地方定义。我一直认为,当您声明对变量的引用时,您会将对该变量的引用绑定到同一个位置。我在这里遗漏了一些东西。此外,当没有限定符(例如 const 或 extern)时,我还没有看到如上声明的引用。
在某些地方我见过这样声明的变量
const int &var1;
extern int & var2;
这些变量在其他地方定义。我一直认为,当您声明对变量的引用时,您会将对该变量的引用绑定到同一个位置。我在这里遗漏了一些东西。此外,当没有限定符(例如 const 或 extern)时,我还没有看到如上声明的引用。
const int &var1;
如果不是 aclass
或 a 的一部分,这是非法的struct
。如果是,则必须在构造函数初始化器列表中对其进行初始化。
它合法的原因是因为该变量在创建该类的对象之前不存在。所以没有无限的参考,因为没有参考可言。
变量的实际声明,无论是引用、指针还是普通变量,都与变量的类型无关。
即使在您的示例中您引用了变量,这也意味着与它们的初始化位置无关。拥有一个引用很有用,因为您从另一个变量中分配它,并且您实际上可以将它们用作指针,而无需关心取消引用它,仅此而已,它与其他任何变量一样是一个变量。
int main()
{
const int &var1;
}
prog.cpp:在函数'int main()'中:
prog.cpp:4:错误:“var1”声明为引用但未初始化
prog.cpp:6:错误:分配只读引用“var1”</p>
编辑:正如其他人所说,它可以成为构造函数的一部分class
并在构造函数中初始化