这段代码让我头疼。就个人而言,我想使用引用,因为它们比指针更整洁,所以我尝试了这个:
include "SomeClass.h"
class FooBar
{
private:
SomeClass& member_;
public:
FooBar() : member_(SomeClass()) { };
}
我读到你需要为类成员引用分配一个临时变量,所以在这种情况下我创建了一个虚拟的 SomeClass() (我不确定我是否在这里做。我试过和无需指定默认构造函数)。但是在VS 2005中编译不了,说member_不能初始化。
我应该怎么做? 提前致谢!
最佳答案
您只能将 temp 绑定(bind)到 const 引用。所以如果你把它改成
const SomeClass& member_;
你会没事的。
不过,您可能不想要这个;你要么应该将 member_
声明为一个值,而不是引用,或者,如果你想要它作为一个引用,你可能想要传递一个对你的构造函数的引用,比如
FooBar(SomeClass& sc) : member_(sc) { };
关于c++ - C++ 中的自定义类型引用成员 - 初始化它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067535/