声明一个const变量作为参考

时间:2012-05-29 08:31:51

标签: c++ reference declaration

在某些地方,我见过像这样声明的变量

const int &var1;
extern int & var2;

这些变量在其他地方定义。我一直认为,当您声明对变量的引用时,您将在同一位置绑定对该变量的引用。我在这里遗漏了一些东西。当没有限定符(例如const或extern)时,我还没有看到如上所述的引用。

3 个答案:

答案 0 :(得分:6)

const int &var1;

如果不属于classstruct,则属于非法行为。如果是,则必须在构造函数初始化列表中初始化。

它合法的原因是因为在创建该类的对象之前该变量不存在。所以没有未绑定的引用,因为没有提及。

答案 1 :(得分:2)

变量的实际声明,让它成为引用或指针或正常变量,与变量的类型无关。

即使在您的示例中您引用了变量,这也意味着它们与初始化的位置无关。有一个引用是有用的,因为你从另一个变量中分配它,你实际上可以使用它们作为一个指针,而不关心dereferincing它,但仅此而已,它是一个像任何其他变量。

答案 2 :(得分:2)

int main()
{
    const int &var1;   
}
  

prog.cpp:在函数'int main()'中:

     

prog.cpp:4:错误:'var1'声明为引用但未初始化

     

prog.cpp:6:错误:分配只读参考'var1'

编辑 :正如其他人所说,它可以是class的一部分并在构造函数中初始化