c 建構函式中的this和base

2021-08-20 05:51:40 字數 958 閱讀 8280

首先要明確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...