1樓:匿名使用者
建構函式就是定義乙個類的物件是,用來初始化的~~
在建構函式中不要對類的示例做初始化以外的事情.不要嘗試顯式的呼叫建構函式,也就是直接去呼叫
這句話就是說,建構函式本身,不需要我們自己去呼叫。
例如:class a
public a(int w)
public a(int w,int y,int z) }
以上類a有3個建構函式,有3個全域性變數,當你建立乙個a的物件時,例如
a a = new a(); //此時,系統會自動呼叫類 a 的無參的建構函式,給a,b,c三個全域性變數賦初始值0。
當你想給類中的a變數賦值時 例如
a a = new a(5); //此時,系統會呼叫類 a 中含有乙個引數的建構函式,在函式中為 全域性變數a賦初始值5.
當你想給所有的全域性變數賦值時,就可以寫成
a a = new a(4,5,6); //這樣當定義完物件a時,就會給所有的全域性變數賦值了~~
如果你把全域性變數定義成 public型別的話
a a = new a(4,5,6);
a.a 的值就是4,
a.b 的值就是5,
a.c 的值就是6.//前提 a,b,c要都是公有的(public)
以上就是建構函式的具體用法,所以書上說不要嘗試顯示呼叫,也就是不要嘗試直接呼叫~~
就是這個意思
2樓:匿名使用者
建構函式的名字必須與類的名字相同:
class a
}當例項化的時候:a a=new a();//例項化程式自動呼叫建構函式,實現裡面的**
3樓:匿名使用者
建構函式,是一種特殊的函式,他沒有返回型別,它的方法名和類的名字相同,它的功能是對這個類的成員變數實現初始化,這種問題建議你多多看看書...
4樓:羅虹雨布彤
建構函式,
其實是乙個過程函式。
當乙個物件被例項化的過程中一定會發生的乙個過程。
系統預設無建構函式,其實是自動生成了空建構函式。
一般用來對該例項進行例項化的時候對物件進行預設初始化。
示例,參考樓上。
C中過載賦值建構函式的問題,C複製建構函式和號過載問題
賦值運bai算符和複製建構函式都 du是用已存zhi在的b物件來建立另dao乙個物件a。不同之回處在於答 c 複製建構函式和 號過載問題 表述基本上沒有問bai題。從功能上來du說,建構函式是用於建立zhi物件的dao,operator其實是可以看成普通內的成員函式,只不容 過是以符號的形式代替文字...
C建構函式的過載問題,C建構函式和析構函式可以過載嗎
因為對於後者來說,當執行my class c1語句時,c1可以呼叫my class建立物件,也可以呼叫my class float x 3.5,float y 8.5 建立物件.但是這會產生兩個不同的c1物件,極易發生歧義。所以系統不知道要呼叫那個建構函式產生物件,也不會允許程式這麼做。c 建構函式...
c中建構函式和析構函式能不能被顯示呼叫
1 c 中,建構函式和析構函式可以被顯示呼叫.顯示呼叫預設建構函式的語法 a.a a 不能寫成a.a 顯示呼叫非預設建構函式的語法 a.a a 7 不能寫成a.a 7 顯示呼叫析構函式的語法 a.a a 可以寫成a.a 2 顯示呼叫建構函式和析構函式就像呼叫一般的函式一樣,並不意味著建立或銷毀物件 ...