對象的構造函數定義:
• 類的構造函數!=結構的構造函數
編譯器聲明缺省構造函數
你能夠聲明缺省構造函數
若是你聲明構造函數,那麼編譯器不會聲明構造函數ide
對象的構造函數代碼:
class Pair
{
}
//編譯器聲明一缺省構造函數
class Pair
{
public Pair()
{ ... }
}
//正確,能夠本身聲明缺省構造函數
class Pair
{
public Pair(int x, int y)
{ ... }
}
//正確,但編譯器聲明的缺省構造函數不存在,不存在缺省構造函數函數
對象的構造函數代碼解析:
類的缺省構造函數的規則與結構的缺省構造函數的規則是不一樣的。你能夠回憶一下,結構總有一編譯器聲明的公有的缺省構造函數。無論你有沒有聲明構造函數,編譯器聲明的公有的缺省構造函數老是存在的。因此你不能定義缺省構造函數,這樣會出現兩個缺省構造函數,這是不容許的。
但這隻適合於結構,對於類是不適用的。若是你沒有聲明任何構造函數,那編譯器會產生缺省構造函數。但若是你定義了一個構造函數,那麼編譯器就不會產生缺省構造函數。這也意味着若是你聲明瞭一個或多個構造函數,那麼你能擁有缺省構造函數的惟一途徑是你聲明的構造函數中必須有一個是缺省構造函數。這樣的結果是若是你只定義了一非缺省構造函數,而你又要使用缺省構造函數的話,那你只有重載這個構造函數。若是你必須手動初始化類中的每個字段(就像在結構中同樣),那將是很是麻煩的。但幸運的是你能夠沒必要這麼作,你將在下面看到這一點。
對象
推薦閱讀:淘車網 www.taoche.comget