c++類的問題,建構函式和解構函式
1樓:網友
new d(1,2,3);
執行d的建構函式,由於他是以初始化表的形式出現的,同時d繼承自c:
d(int i,int j,int k):a(i),b(j),c(k)
依次進行初始化。
c(k) -呼叫類 c的建構函式c(int k) -輸出字元 c
a(i) -a是a類的物件引用,呼叫類 a 的建構函式a(int i) -輸出字元 a
b(j) -b是b類的物件引用,呼叫類 b的建構函式b(int j) -輸出字元b
cout<<"d ";--輸出字元d
delete pc;--注意pc的宣告 :c *pc,他是指向c類物件的指標,delete應該調c類的解構函式。
所以最後輸出: ~c
合在一起就是:c a b d ~c
2樓:半簾泥燕
正確順序: c a b d ~c
1、先構造父類,d是c的子類,故先構造c,輸出c2、然後根據引數構造a和b,這兩個的構造順序,是根據在d中a和b定義的順序定的。先定義a,故先構造a。
3、最後構造d
4、釋放空間,所以析構c
c++ 關於成員函式建構函式的問題!
3樓:豬頭或火寶寶
1.是的,對資料成員的初始化可以通過其函式成員,但系統在沒有建構函式的情況下就會自動呼叫預設的建構函式,建構函式是專門進行初始化的。別的函式有別的函式的用途。
2.類的資料成員在定義時是不允許初始化的,初始化是通過建構函式的 。
class date
其初始化是通過建構函式的,當然可以啦!!!
3.以摟住給的題為例:
class date
類date的建構函式是自己定義的,不是預設的建構函式要是樓主沒有定義的建構函式:比如;
class date
其就沒有自己定義的建構函式,系統為為之生成乙個預設的建構函式,系統就會自動呼叫預設胡建構函式進行初始化,樓主問「它的引數列表或者為空,或者它的所有引數都具有預設值。這句話是什麼意思?」就是month day yesr 的值可能都是0或是其他的數。
不理解的話加我我們交流一下!!!530910067可以的啊!!!
4樓:網友
1.對。成員函式都能給成員變數賦值。至於是不是初值看你理解了。
2.**有錯。
3.可以這麼理解。預設建構函式一般沒有引數,或引數有預設值其實成員初始化就是乙個賦值的過程。
5樓:網友
樓主的理解沒有問題啊,其實程式設計重要的就是要多寫程式除錯,結果說明一切。
c++類中建構函式的使用出錯
6樓:暗送秋浡
第一種,是呼叫帶引數的建構函式,顯而易見,你定義的是乙個帶三個引數的建構函式,沒問題,ok。
第二種,是呼叫的是不帶引數的建構函式,不定義的話,編譯器會預設乙個,沒問題,ok。
第三種,呼叫的是複製建構函式,沒定義的話,編譯系統也會自動提供乙個預設的複製建構函式,但只是簡單地複製類中每個資料成員,定義的話,就會呼叫是你自己的。
第四種,這種定義類物件,是錯誤的語法,只有在呼叫帶引數的建構函式建立物件時,才會用括號()把引數傳進去,如果想呼叫無引數的建構函式建立物件,是不能帶括號的,所以編譯器會報錯。
c中建構函式的作用,C 中建構函式的作用
共同點 都是例項化物件,初始化資料的 預設構造是說所有的類都從祖先object那繼承了空參的構造方法,你不寫與寫空參構造都存在,而有引數的構造一般是自己寫的,寫就有不寫就沒有,它的作用和空參的一樣,只是它裡面可以有引數,給你個例子來說明吧 有乙個類monitor它有屬性string height s...
C建構函式和析構函式的使用問題
注意我和你有些地方寫法不太一樣,建構函式我一般喜歡這樣寫。include class carray float getfloat int index re取浮點陣列中第index個元素,index從0開始 carray 析構函式,釋放動態分配的記憶體空間void print 分別輸出整形陣列和浮點陣...
誰幫我編c程式,要類中顯示定義建構函式和析構函式。簡
樓上的程式好多錯誤!建構函式和複製建構函式之間是過載關係。include using namespace std class person person person char name,int age m age age 有構造函式引數初始化表 person person const person...