我正在为一个类创建一个接口包装。类中的成员是一个参考(以避免复制大型结构)。如果我创建一个私有构造函数,那么初始化该引用以安抚编译器的最佳方式是什么?如何使用私有构造函数的引用成员来初始化类?
struct InterfaceWrapper {
InterfaceWrapper(SomeHugeStructure& src):m_internal(src){};
int someElement(void) const { return m_internal.someElement; };
private:
InterfaceWrapper(){} // initialize m_internal
SomeHugeStructure& m_internal;
};
如果您定义了任何其他构造函数,编译器不会自动生成默认构造函数。所以在这种情况下,它可以安全地从代码中删除。 – 2008-11-12 17:08:41