2015-02-23 104 views
0

是從下面的代碼錯誤的拷貝構造函數

class first 
{ 
    public: 
    first(const first &f) 
    { 
    } 
}; 

main() 
{ 
    first fobject; 
    first sobject = fobject; 
} 

錯誤我得到得到一個錯誤是「呼叫太少參數先::第一(const的第一遠&)」

有人可以幫忙嗎?

Regards, Aswin。

回答

0

有2個問題,你的代碼

1您的拷貝構造函數是你沒有提供一個默認爲空PARAM構造函數來創建類的「第一」

最佳實踐的第一個實例私人 和 2你應該總是創建一個構造函數,析構函數,複製構造函數。

class first 
{ 
    public: 
     first() {} 
     first(const first &f) {} 
}; 

main() 
{ 
    first fobject; 
    first sobject(fobject); 
} 
+0

Appdjava:我編輯了文件,複製構造函數存在於公共訪問說明符中。仍然得到錯誤,但如果我定義了一個默認的構造函數,錯誤消失了。現在我想知道,在這裏編寫一個默認構造函數是強制性的。 – Prasath 2015-02-23 11:42:19

+0

@Prasath通常不需要創建默認構造函數。但是你需要一個代碼,因爲你正在創建沒有任何參數的'fobject'。所以你必須提供一個默認的構造函數來創建該對象。 – Yeager 2015-02-23 11:45:05