回覆列表
  • 1 # zkamr38729

    在建立物件時呼叫建構函式,建構函式來初始化成員變數。可以有多個建構函式,他們的區別就是引數不同。所有可以用不同的建構函式初始化一個物件。預設建構函式,就是呼叫建構函式時,不必給出實參的建構函式。在一個類中定義了全部是預設引數的建構函式後,不能再定義過載建構函式。例:Box(int =10,int =10,int =10); 1Box(); 2Box(int,int); 3若有以下定義語句:Box box1; //是呼叫上面的第一個預設引數的建構函式,還是第二個預設建構函式Box box2(15,30); //是呼叫上面的第一個預設引數的建構函式,還是第三個建構函式擴充套件資料:第2個建構函式是最基本,最原始的建構函式;第1個就是形參都已預設,指定了的建構函式,呼叫時實參可以傳過去1個,2個,3個,甚至0個數據。比如,第一個語句:Box box1;我們可以認為他是直接呼叫第2個建構函式,也可以認為他是呼叫了第1個建構函式,只不過沒有實參傳遞過去而已,這樣就產生了歧義。同理,第二個語句,我們可以理解為它呼叫了第3 個建構函式。但同時,理解為它呼叫第1個建構函式,只不過僅傳過去2個實參,也是可是說得通的。這也就產生了歧義。事實上,上面3個函式中任意一個都可以說是另兩個的過載函式,那麼“在一個類中定義了全部是預設引數的建構函式後,不能再定義過載建構函式”就很好容易理解了

  • 中秋節和大豐收的關聯?
  • 烏龜冬眠的時候是不是整個冬天都在睡覺,都不動?