[問題]新手:關于默認構造函數的問題
書上說如果一個類沒有定義任何構造函數,就會有一個默認的不帶參數的構造函數。
我做了如下實驗:
1、在一個類的定義中不寫任何構造函數,然后在另一個類的main函數中用不帶參數的構
造函數實例化這個類,證明可行。
2、在一個類的定義中寫兩個構造函數,分別是不帶參數的構造函數和帶2個參數的構造
函數,然后在另一個類的main函數中用這兩種構造函數實例化這個類,可以得到兩個對
象,證明可行。
3、在一個類的定義中僅寫一個2個參數的構造函數: 構造函數(int x,int y),然后在另
一個類的main函數中用不帶參數的構造函數實例化這個類,這時就不能成功,錯誤有兩
種情況:將2個參數的構造函數不定義為public時,錯誤是說構造函數(int,int)受保護
,但按我的理解我實例化時是調用的默認的構造函數(就是我沒寫但系統自己存在的那個
默認的不帶參數的構造函數),與構造函數(int,int)無關;將2個參數的構造函數定義為
public時,錯誤是說不存在0個參數的構造函數。
所以由以上實驗是否可以得出:如果一個類只定義了一個帶參數的構造函數,那么這個
類就不存在所謂的默認的不帶參數的構造函數了?
兩岸用語有不同,希望大家能理解。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.5.86.3
→
01/23 17:18, , 1F
01/23 17:18, 1F
→
01/23 17:28, , 2F
01/23 17:28, 2F
推
01/23 20:24, , 3F
01/23 20:24, 3F
推
01/23 20:24, , 4F
01/23 20:24, 4F