我有一個函數接口:避免拷貝初始化時參考
struct iFace {
virtual Type& getType() = 0;
}
和想法是檢索它喜歡:
iFace& iface = getIface();
Type& type = iface.getType();
然而,我偶爾我做了錯誤,並寫上:
Type type = iface.getType();
哪個按值複製,這是我想要避免。但是,當我犯這樣的錯誤時,編譯器不會因爲它的合法語法而發出警告。我想爲此觸發編譯時錯誤,問題我的替代方法是什麼?
我想過聲明拷貝構造函數,但沒有在任何地方定義它,如果它的使用造成的鏈接時錯誤,但後來我將無法使用拷貝構造函數任何情況,小於desiderable
你無法真正擁有它。 – 2011-04-27 21:18:47
這就是我所害怕的,所以我想在這裏要求確認。感謝您的確認 – lurscher 2011-04-27 21:20:02
這取決於類型是什麼。如果你可以使類型抽象,那麼你將無法創建一個實例。 – 2011-04-27 22:09:40