'identifier' : 沒有可用的複製建構函式或是複製建構函式宣告為 'explicit'
備註
複製建構函式 (Copy Constructor) 從另一個相同類型的物件上初始化物件 (它製作物件的複本。如果您未定義任何建構函式,編譯程式會產生預設複製建構函式。
若要修正這個錯誤
當嘗試複製的類別所擁有的複製建構函式為
private時,就可能會發生這個問題。 在大部分情況下,不應複製具有private複製建構函式的類別。 一般程式設計技術會宣告一個private複製建構函式,來防止直接使用類別。 該類別單獨使用可能毫無用處,或需要另一個類別才能正確運作。如果您判斷使用具有
private複製建構函式的類別是安全的,則從具有private建構函式的類別上衍生新的類別,並在新類別中提供public或protected複製建構函式使用。 使用這個衍生類別取代原本的。當嘗試複製的類別擁有明確的複製建構函式時,可能會發生這個問題。 將複製建構函式宣告為
explicit,可防止將類別的物件傳遞至函式,或將類別的物件從函式傳回。 如需明確建構函式的詳細資訊,請參閱 使用者定義型別轉換。若嘗試複製的類別執行個體使用複製建構函式宣告了
const,但該建構函式未採用const傳址參數,就可能會發生這個問題。 請宣告具有const類型參考而不是非常數類型參考的複製建構函式。