首先要明確:this指向的本例項的建構函式,base指向的時基類的建構函式。
再執行順序上,a、this表明,在執行本建構函式之前,先執行this指向本例項的建構函式,再執行本函式。
b、base表明,在執行本建構函式之前,先執行base指向的基類的建構函式,再執行本函式。
示例demo:
建立兩個 類,乙個 one(基類),two(繼承自one)。
using
system;
namespace
csharp
} class
one
public
int age
public
bool ***
public
one(
string name,
int age,
bool ***)
public
one():
this(
"預設姓名",
18,true) //在呼叫之前首先 呼叫本例項的 有引數 的建構函式,再執行本建構函式
} class
two:
one
public
two() :
base() //在呼叫之前 先呼叫 基類的 無引數 建構函式,再執行本建構函式
public
two(
string like):
this() //在呼叫之前先呼叫 本例項的 無引數的建構函式 。即two(),再執行本建構函式
} }
執行結果:
c 中的建構函式和拷貝建構函式
c 的類有六個預設成員函式,我今天介紹其中的兩個,乙個是建構函式另乙個是拷貝建構函式。建構函式用於當類的物件被建立時,給它分配記憶體空間,並且由編譯器自動呼叫建構函式對類物件進行初始化工作。建構函式的函式名與類名相同,沒有返回型別。下面是乙個例子 class string private char ...
C 語言 類中的建構函式和拷貝建構函式
在說這個之前我想問乙個問題,如果成員變數是私有的,我們怎麼初始化這些私有的成員變數?其實這就是建構函式的存在的理由,因為這個成員變數為私有的,要對它們進行初始化,必須用乙個 公有成員函式來進行。同時這個函式應該有且僅在定義物件時自動執行一次,這時呼叫的函式稱為構 造函式 constructor 下面...
C 的建構函式和拷貝建構函式
編譯器自動生成的構造僅僅做讓編譯能通過的事情,它不會初始化成員變數。編譯器並不會自動生成預設的建構函式和拷貝建構函式,僅僅在它需要的時候。沒錯!對於下面的類 class test 編譯器不會自動生成建構函式,因為沒有字段需要初始化。很多時候都需要深拷貝,這時需要自己定義copy constructo...