建構函式的作用是根據引數不同來建立乙個不同的例項物件,現在我想介紹一下例項物件的過程,我們都知道如果沒有說明繼承那個類,那麼乙個類預設繼承的是system.object類。所以如果是乙個指明了繼承哪個類,那麼至少它繼承兩個類。
現在開始介紹建構函式,建構函式是沒有返回型別的啊,不知道這個大家知道不。主要還是通過**會更清楚吧,下面開工**
using system;
using system.collections.generic;
using system.linq;
using system.text;
//這個預設的情況下是省略的,現在為了明顯期間 我就添上了,下同
}public class rewrite:write
}class program
}}
這個的執行過程是system.object方法,write方法,rewrite方法。無論是否有繼承存在 object是必須執行的 而且是先執行的。如果不行的話 我們可以在每個函式中新增乙個console.writeline("******");主要就能看出那個先執行了。
其實我想介紹的重點不是這個是下面乙個。請看**
using system;
using system.collections.generic;
using system.linq;
using system.text;
public write(int i)
", i);
}public write(int i, int j)
和", i, j);}}
public class rewrite : write
public rewrite(int i)
", i);
}public rewrite(int i, int j)//
和", i, j);}}
class program
}}
這個執行順序大家應該很明白了,是先執行object方法,然後執行write()方法。最後執行rewrite(i, j);方法。但是如果我想執行write(i)方法怎麼辦呢 其實很簡單 關於建構函式
class foo foo char x,int y 上面例子中,foo x,0 語句並不呼叫當前物件的foo char x,int y 函式,而是產生乙個臨時物件並對其初始化,然後在語句結束時 分號處 銷毀臨時物件。因此當前物件並未得到初始化,這恐怕出乎很多人的意料。解決這個問題,常見的辦法是合併...
關於建構函式
1 每個類必須有乙個建構函式,否則沒法建立物件 2 若programer沒有提供任何建構函式,則c 提供乙個預設的建構函式,該預設建構函式是無參建構函式,它僅負責建立物件,不做任何初始化的工作 3 只要programer定義了乙個建構函式 不管是無參還是有參構造 c 就不再提供預設的預設建構函式。即...
關於建構函式
之前學習c 很多東西都草草了解,並沒有吃透,建構函式就是乙個例子。不帶引數的建構函式稱為 預設建構函式 無論何時,只要使用 new 運算子例項化物件,並且不為 new 提供任何引數,就會呼叫預設建構函式。除非類是 static 的,否則 c 編譯器將為無建構函式的 類提供乙個公共的預設建構函式,以便...