c無參的建構函式問題,C 中無參建構函式的使用問題

時間 2022-06-29 10:00:07

1樓:

vs 2005要求必須要有建構函式,這是一定的不過如果有帶參建構函式,就可以不要無引數的建構函式。

至於當類中有帶引數的建構函式時,vs 2005要求有一個無參的建構函式。這只是一種建議。就像你說的,他是為了防範出錯,屬於比較保守的安全程式設計,類似於斷言程式設計一類的規定

就好比說,有一個電器他規定額定電壓220v,但實際上250v他也可以工作,但你如果真的把他弄到250v下工作,那出了啥事,就只能怪你自己了

2樓:

哥 ,誰 告訴你一定要有無引數的建構函式啊 ?

類本來是有一個預設的無引數的建構函式,但是隻要你寫了一個建構函式的話預設的建構函式就覆蓋掉了!你可以為類做多個建構函式,這樣就可以想初始化誰 就初始化誰 了!

3樓:匿名使用者

無參建構函式就是預設建構函式,它不會實現類中所有成員變數的初始化。每個類系統會預設生成一個和類名相同的建構函式(不顯示)。

4樓:

無參建構函式就是預設建構函式啊,是定義類時自動生成的。如果你需要定義其他的有參建構函式,那麼這個預設的建構函式就會被覆蓋。

c#中無參建構函式的使用問題

5樓:

原因有二:

第一:「每個類裡面都有一個預設的無參的建構函式」

這個是有條件的:如果你不手動新增有參的建構函式,則編譯時會自動新增一個無參建構函式,但是如果你手動新增了一個有參的建構函式,這個「預設的無參建構函式」就不會自動新增,這時候如果你還想呼叫無參的建構函式,只能手動寫一個無參的建構函式,

第二:預設的無參建構函式裡面是空的,什麼都不執行,如果你想在無參建構函式中新增一些初始化**的工作,那就必須手動寫這個無參建構函式,

6樓:匿名使用者

預設如果不提供建構函式的話,系統會自動生成一個預設的建構函式,是一個沒有引數的,但是如果提供了建構函式,系統就不會在提供預設的建構函式了。

按照net標準,總是應該提供一個沒有引數的建構函式,除非你有特別的理由不這麼做,需要強迫在物件構造時候來初始化你的物件中的某些資料,而被初始化的資料你不希望在物件初始化後被改變。

7樓:匿名使用者

作用就是做一些初始化準備。有些物件無論你有引數、沒引數都需要初始化。比如分配記憶體(c++裡面用的多),給指定變數賦初值等等。

8樓:匿名使用者

無引數的建構函式,可以使用某些特定的資料進行資料成員初始化,而不是使用系統預設的資料進行初始化.比如使用系統預設的建構函式

public class account}

9樓:

看你新加東西的型別有的有有的就沒有

c#有參建構函式中怎麼呼叫其無參建構函式

10樓:傻的像博士

class a

public a(int a) :this()}當a a=new a(1);

時 會先呼叫無引數的建構函式。在呼叫有引數那個

11樓:匿名使用者

好像不可以把?不過你可以通過呼叫同一個方法來實現...

c# 沒有顯式的無參建構函式時,無法通過assembly.createinstance()例項化

12樓:匿名使用者

createinstance 還有一個過載版本是需要你給出提供給構造方法的引數的啊

13樓:陽光的雷咩咩

為什麼你需要反射出cursor?描述場景?

c# 在main函式中怎麼呼叫無參的建構函式

14樓:匿名使用者

解答:可以使用double.tryparse這個函式。

p1.x = double.parse(console.readline());

p1.y = double.parse(console.readline());

p2.x = double.parse(console.readline());

p2.y = double.parse(console.readline());

改為double doubleval;

boolean result ;

result = double.tryparse(console.readline(), out doubleval);

if (result==true)

else

result = double.tryparse(console.readline(), out doubleval);

if (result==true)

else

result = double.tryparse(console.readline(), out doubleval);

if (result==true)

else

result = double.tryparse(console.readline(), out doubleval);

if (result==true)

else

15樓:

public point()

16樓:匿名使用者

public point()

只有該這裡即可

17樓:冒晟睿寸駿

class

a()}

intmain()

這種基本的問題網上搜下很多

18樓:邱之槐巨洲

class

apublic

a(int

a):this()}當a

a=new

a(1);

時會先呼叫無引數的建構函式。在呼叫有引數那個

c#中通過無參建構函式來呼叫有參建構函式有什麼意義啊?

19樓:匿名使用者

節省**,避免重寫一遍!

20樓:匿名使用者

1樓說得對,**重用(可以理解為過載)

一般來說,都是引數少的呼叫引數多的,最終**都寫在引數多的裡面,你現在遇到的類建構函式裡面寫的**少,等寫得多了,你就能理解了

c中建構函式與解構函式的問題,C 中建構函式與解構函式的問題

你的getname函式在 你的類定義中只有getscore和getid c 關於建構函式和解構函式呼叫次數的問題 沒問題啊。引數傳遞的時候第一次拷貝構造呼叫,在函式返回的時候賦值給c2 再次呼叫了拷貝構造。析構的話 c1 c2 c 三次 傳遞引數和返回引數各一次拷貝建構函式,所以是2次 有兩個物件c...

C中如何繼承帶有引數的建構函式,請教c 有參建構函式繼承的問題

返回型別一致,引數型別一致,直接呼叫就可以 請教c 有參建構函式繼承的問題 老游擊隊員 注意看父類a的構造方法是帶一個引數的int型所以你baes no 的時候會根據你no的型別選擇父類的建構函式,如果沒有找到匹配型別就報錯,例如 你base s s是string型別,而父類裡面又沒有傳string...

c 解構函式問題,c 解構函式的問題

1 不是不能定義,是定義了沒意義。因為建構函式不被繼承,而虛擬函式是要在派生類中重定義的2 定義虛解構函式後,由於多型,當使用基類指標指向派生類物件時,會呼叫派生類的虛構函式,然後派生類的解構函式自動呼叫基本解構函式。不是虛的話,直接呼叫基類的解構函式了。如果派生類中有用new分配的記憶體,就無法釋...