引用作为类成员变量而没有初始化

时间:2012-03-22 12:11:45

标签: c++ reference

有没有办法将引用用作成员变量而不在构造函数中初始化它? 我的问题是在构造对象时我没有手头的参考。

3 个答案:

答案 0 :(得分:4)

没有。引用必须在创建时初始化,之后不能修改。该标准规定了

  

应初始化引用以引用有效对象或   功能

如果您在构造时没有目标对象,请切换到使用指针而不是引用。

答案 1 :(得分:2)

> Is there a way to use a reference as a member variable without initialising it in the constructor?

不,必须在构造函数初始化列表

中初始化引用

> My problem is that I don't have the reference at hand when constructing the object.

我想你的意思是你没有要引用的对象。在这种情况下,您必须转到指针并将其初始化为NULL。然后当你有对象使指针指向那个。在这种情况下不能使用引用,因为您无法初始化对NULL的引用

答案 2 :(得分:0)

一旦引用被初始化,它将在其生命中指向同一实体。任何“重置”它的尝试都会导致未定义的行为。

如此简短的回答:如果你无法初始化,就不能使用它。