C 建構函式裡的base和this的區別

2022-03-21 02:35:08 字數 1567 閱讀 4828

用法一:

父類的建構函式總是在子類之前執行的。既先初始化靜態建構函式,後初始化子類建構函式。

public

class

basecircle

public basecircle(double

arg)

}public

class

subcircle : basecircle

public subcircle(double a):base

(a)

public subcircle(int k):this(1,2

)

public subcircle(int i,int

j)

}static

void main(string

args)

", numa);

}public baseclass(int

i)

", numa);}}

class

childclassa : baseclass

", numb);

}public childclassa(int

i)

", numb);

}public childclassa(int i, int

j) :

base

(i)

", numb);}}

class

childclassb : baseclass

", numb);

}public childclassb(int

i)

", numb);

}public childclassb(int i, int

j) :

this

(i)

", numb);}}

class

demo

}

執行的結果如下:

--------------------------------結果----------------------------------使用base

基類帶乙個引數的建構函式. value:

2子類帶有兩個引數的建構函式. value:4

----------------------------------------使用this

基類的無引數建構函式. value:

0子類帶有乙個引數的建構函式. value:

2子類帶有兩個引數的建構函式. value:4

--------------------------------結果--------------------------------

this只是呼叫本身,但是這樣是需要呼叫一次基類沒有參的建構函式,所以會多顯示一條「基類的無引數建構函式. value:0」。

base是呼叫基類的有引數建構函式。

C 建構函式裡的base和this的區別

class baseclass numa public baseclass int i numa class childclassa baseclass numb public childclassa int i numb public childclassa int i,int j base i ...

C 建構函式裡的base和this的區別

class baseclass numa public baseclass int i numa class childclassa baseclass numb public childclassa int i numb public childclassa int i,int j base i ...

C 建構函式裡的base和this的區別

this只是呼叫本身,但是需要呼叫一次基類無參的建構函式.base是呼叫基類的有引數建構函式。class baseclass numa public baseclass int i numa class childclassa baseclass numb public childclassa in...