如何在C ++类中使用引用变量?

时间:2012-06-27 04:02:46

标签: c++

我想在类中有一个引用数据成员,但我不想在构造函数中初始化它。

我怎么能这样做?

3 个答案:

答案 0 :(得分:10)

这是不可能的,你必须初始化ctor初始化列表中的引用数据成员。如果你真的必须做这样的事情,使用指向数据成员而不是引用的指针。在ctor中初始化指向NULL的指针,然后在需要时正确初始化它。

答案 1 :(得分:2)

您必须在构造函数中初始化它(到初始化列表),因为这是引用变量的属性(必须初始化引用)。

您可以通过默认参数保持初始化来将其初始化为某个静态/全局变量。

YourClass::YourClass(int& ref = _SomeGlobalVar) : m_RefInClass(ref){}

但你不能再进一步重新初始化。

答案 2 :(得分:0)

如前所述,如果某个地方需要引用,这通常是一个糟糕的主意 - 通常有充分理由说明原因。

如果对您正在做的事情有特定的推理,您可能需要have a look at Null Object Patterns

您可以创建一个抛出某种“未实现”异常的null对象,或者根本不执行任何操作。您仍然需要在初始化列表中初始化您的成员变量,但现在至少您可以灵活地在将来进行更改。