c在類下寫兩個建構函式,它們引數個數和型別一樣,但是引數是不一樣的,該怎麼解決

2021-03-30 15:27:52 字數 3827 閱讀 4353

1樓:匿名使用者

同一個構造裡面的引數型別一樣嗎? 不一樣的話可以通過調換下引數位置解決。如果一樣的話

可以更換引數型別,比如string換為stringbuilder;

或者只要一個構造,在構造裡面在加一個引數,這個引數來區分傳入引數的意義

2樓:匿名使用者

那你就合起來,引入第三個引數作為標誌

3樓:匿名使用者

《它們引數個數和型別一樣,但是引數是不一樣的.》這不矛盾嗎?除非順序不一樣!

4樓:匿名使用者

函式名稱不一樣就行了

5樓:匿名使用者

public partial class form9 : formpublic form9(int x,int y)public form9(double x,double y)}

c# 在一個類中有兩個名稱相同的建構函式,它們所含引數個數相同,型別不同,使用的時候怎麼區分開

6樓:愛

class 自定義類

public string 中文月份(string 中文)}自定義類 月份 = new 自定義類();

messagebox.show(月份.中文月份(9) + "····" + 月份.中文月份(月份.中文月份(9)));

當呼叫是檢視引數列表進行選擇.

7樓:匿名使用者

靠引數型別區別!編譯器根據引數型別和數量,自動匹配合適的建構函式

8樓:鳶尾花語

這是過載,你傳遞不同的型別的值就可以了

你傳遞string 就會自動呼叫上面那個

int就呼叫下面的那個

9樓:人定勝天

不用區分開,程式會根據你傳的引數型別自動判斷!

我是新手,在一個類中寫多個建構函式,需要寫實體引數,可是我對引數概念不是很清楚,問下有問題嗎?

10樓:手機使用者

1.建構函式和類名要相同。

b(int b)

改為a(int b)

2,實參不要型別。

#include"iostream"

using namespace std;

class a

b(int b)

//c(int c)

//void display()

};int main()

{a z(6);

3.物件函式的引用不用實參。

d(int b改為:z ().display;

c#程式理解,怎麼理解建構函式,建構函式名字為什麼和類名是一樣的呢??

11樓:匿名使用者

建構函式是物件導向的程式設計中出現的一種方法,它是每個類都會有的方法,作用是構造及初始化物件。為了程式編譯時能很好地辨識這個必須的「建構函式」。那這個建構函式的名字最好就有一定的規定。

現在規定了建構函式名字和類名一致,編譯時就知道哪些是建構函式, 例項化物件時就會呼叫合適的建構函式進行類的例項化。

建構函式 是一種特殊的方法 主要用來在建立物件時對物件進行初始化。即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。特別地,一個類可以有多個建構函式 可根據其引數個數的不同或引數型別的不同來區分它們,就是建構函式的過載。

建構函式是類自己在物件剛剛建立時候自己呼叫的,一般不允許使用者自己顯示呼叫建構函式。使用者只要將建構函式寫好,類在例項化物件的時候自動呼叫合適的建構函式對物件進行初始化(若有多個建構函式,系統會根據建構函式的形參來進行選擇)。

你可能會看到有些類沒有建構函式,這時候編譯器會自動生成一個形參為空的函式體為空的建構函式給該類。總之,建構函式是必須的。

你說的不懂的地方,其實就是在例項化kkk這個物件的時候,即kkk剛建立的時候,系統對自動呼叫一次program類的建構函式。這就是建構函式唯一一次呼叫的地方。使用者是不能顯示呼叫建構函式的。

這和c語言是有區別的,建構函式用於物件的初始化,這樣可以使物件的封裝性更好。

12樓:大海泛舟

可以這樣理解,它就像是做程式一樣,後臺中可能有好多的事件,但必須要執行的是page_load事件,讓它顯示一些值,別的事件你可以呼叫也可以不用;再說的白一點,就是給這個類賦一個初始值,使程式知道有這麼個類,它必須執行的就是這個建構函式,然後你可以對這個類裡面其它資料進行修改

13樓:匿名使用者

建構函式只有在類被例項化時(new時)呼叫一次,也可以理解成對類的初始化動作!

14樓:非馬

在c#中例項化類的時候總會自動呼叫建構函式,就算你沒有定義建構函式,編譯器也會自動加上一個預設的建構函式。不存在為什麼。

15樓:匿名使用者

建構函式是類實列化的依據,

建構函式名字和類名一樣是一種約定,談不上為什麼

c#作業,編寫程式定義一個員工類,定義預設建構函式和帶引數的建構函式

16樓:匿名使用者

public class employeepublic employee()

public employee(string name)}但實際當中會寫成下面這樣

public class employeepublic employee(string name = null)}

對於c#中的建構函式的作用是不是方便為了在一個類中可以例項化多個引數型別不一樣的方法

17樓:

建構函式的作用主要是是完成物件的初始化,應該可以理解為是構造一些屬性或者方法界定該類所具有的特定屬性

c#類繼承:如果一個類要繼承一個建構函式有引數的類,且繼承的子類要實現無參建構函式的呼叫,這能否實現

18樓:匿名使用者

可以實現,你在基類也就是父類上寫一個無參的建構函式,這樣父類就有兩個建構函式了,這樣子類就可以實現無參的建構函式的呼叫了

19樓:丠風

構造方法不能被子類繼承,只能通過base呼叫

20樓:

能啊,但是叫做呼叫不叫繼承,你把基類(父類加個預設的建構函式就可以了);預設建構函式為無參建構函式

21樓:匿名使用者

你是想要這種效果嗎

class base

class extend : base}

22樓:匿名使用者

可以顯示的呼叫~~~可以實現~~

在類裡面定義兩個建構函式有什麼意義?

23樓:匿名使用者

這個不一樣。兩個定義就是你在例項化類的時候可以帶引數,也可以不帶。但是隻有第二個的話就必須帶引數,不然報錯。

24樓:天蠍神經俠侶

即便第二個函式的兩個引數都是0,這兩個也是不一樣的建構函式,只是在第二個函式的引數都是0的時候,兩個建構函式造成的效果是一樣的了。如果你不想定義那個無參的建構函式也是可以的,第二個建構函式也可以達到這樣的效果。但是你如果定義了這兩個建構函式的話,使用上就要對它們有所區分了

用c#編寫段程式, 定義一個point類,實現其有引數和無引數兩種建構函式

25樓:老鳥vs菜鳥

class point

////// 無參

///public point()}

在c 中如何用new生成建構函式帶引數的類陣列

1.如下 include include using namespace std class foo foo private int id int main 第一種方法 cout endl 第二種方法 use b for size t i 0 i 2 i cout endl 這估計就是你要的了,和第...

在c語言中對於A A 1,A 1這兩個函式該怎麼理解

兩者無論從表來面上的結果或者實際自 執行過程都沒有區別,但是他們和a 有一部分割槽別。a a b或者a b過程 假如a的值存放在0x33445566記憶體地址中,那麼程式先從該地址取出a的值放入暫存器x,將b放入暫存器y 此時假設b為立即數,如果b是某個變數的話,cpu將先對其進行定址 然後兩暫存器...

excel函式中哪個公式可以在格里設兩個計算方法

在c1輸入 if b1 3000,3000 20,3000 0.991 上面這個是b1 3000時,也按照小於3000來運算。如果你的公式中的3000只是代表b1的值的話,公式為 if b1 3000,b1 20,b1 0.991 確定是3000參與計算,而不是b1 if b1 3000,3000 ...