【发布时间】:2012-01-29 18:56:08
【问题描述】:
是否可以在 c++ 中将引用成员初始化为 NULL?
我正在尝试这样的事情:
class BigClass
{
private:
Object m_inner;
public:
const Object& ReadOnly;
BigClass() : ReadOnly(NULL)
{
Do stuff.
}
};
我知道如果我将“ReadOnly”初始化为一个对象的真实引用,我可以做到这一点,但是当我想在那里输入“NULL”时,我得到了错误:
"无法从 'int' 转换为 'const Object &'
我该如何解决这个问题?
【问题讨论】:
-
参考的目的是使这成为不可能。请改用常规指针。
-
你可以这样做 { const Object& ReadOnly = *(Object*)NULL; } 但它的丑陋。预处理器只是删除 & 和 *
-
@Justin "预处理器只是去掉了 & 和 *" 废话
-
@curiousguy 哼哼……让我详细说明仇恨者。预处理器取消 *& 组合。使用 ref & 声明只是简写,因此您不需要使用 -> 它是 (*the).thing 的简写。所以那里;)
-
@Justin C++ 预处理器不做这样的事情。
标签: c++ reference initialization-list