我正在爲一個類創建一個接口包裝。類中的成員是一個參考(以避免複製大型結構)。如果我創建一個私有構造函數,那麼初始化該引用以安撫編譯器的最佳方式是什麼?如何使用私有構造函數的引用成員來初始化類?
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