1樓:
根據c++對於虛基類的建構函式「最晚輩派生」呼叫規則,所有的虛基類的建構函式都要由 a 的建構函式最先呼叫,系統中有兩個虛基類:c 和 e,但由於 e 是 c 的基類,所以 e 的建構函式要先呼叫(這是第1),c 還有一個基類是 d,也要呼叫建構函式(這是第2),然後才是呼叫 c 的建構函式(這是第3)。
c 初始化完後,再初始化 b,而 b 兩個基類 d 和 e,e 是虛基類,已經初始化過了,然後是基類 d,要先呼叫其建構函式 (這是第4),然後是 b 自己的建構函式呼叫(這是第5)。
c 和 b 都初始化完成了,最後呼叫 a 的建構函式(這是第6)。
所以整個的順序是 e,d,c,d,b,a。
2樓:匿名使用者
整個程式如下:
#include
#include
#include
using namespace std;
class name
採用帶1個形參的建構函式,你輸入的時候輸入wan,就會把名字儲存為wangwu,並且顯示~
3樓:匿名使用者
先說一下:建構函式不是這麼用的。(⊙﹏⊙)b
非要這麼寫的話,就直接在建構函式裡面輸入三個字母,然後判斷是哪個名字的前三個字母再輸出就好了。就把建構函式當一個普通的函式(或者直接當main函式來用)。
c++ 關於建構函式的一些問題。 100
4樓:匿名使用者
這個不是一個建構函式,是一個成員函式
用於將傳來的物件初始化當前物件,並返回當前物件的引用
建構函式是不可以有返回值的。
【c++】關於建構函式和解構函式的問題
5樓:veket的小號
sample(int a,b) b前少個int
6樓:祜風
#include
using namespace std;
class sample
sample(int a,int b)
~sample()
程式呼叫的是sample帶參建構函式
c++關於建構函式的初始化問題
7樓:匿名使用者
建構函式執行的過程有兩步。
一是初始化,就是你說的: x(0) , y(0)。
二是執行函式體。
注意如果沒有顯式指明x(0) , y(0)(你的第一種),即沒有顯式的呼叫x,y的建構函式進行初始化,x,y仍然會被初始化(呼叫預設建構函式)
8樓:匿名使用者
cmfcview::cmfcview()
: x(0)
, y(0)
中的0 , 0 就是你在初始化x,y時直接對他們進行的賦值,效率高而已。
9樓:春雨_潤物
這叫作:初始化列表,用把括號裡的值賦值,效果一樣,不過有些情況必須這樣寫,你可以查查,樓上的說的只是一種情況。大括號裡是對派生類新增資料成員賦值用的。
10樓:匿名使用者
一般純粹是初始類中私有資料成員的時候,才會用第二種.函式體裡面不用加任何其它語句了.
11樓:
「:」後面叫初始化列表
效果一樣也是 x = 0;y = 0;
c++關於建構函式呼叫問題
c 拷貝建構函式的問題,c 拷貝建構函式問題
你原來的程式就有些小問題,幫你也改了一下。在下面。include include using namespace std class location 建構函式1 location location int a int b double location distance location loc1...
c中建構函式與解構函式的問題,C 中建構函式與解構函式的問題
你的getname函式在 你的類定義中只有getscore和getid c 關於建構函式和解構函式呼叫次數的問題 沒問題啊。引數傳遞的時候第一次拷貝構造呼叫,在函式返回的時候賦值給c2 再次呼叫了拷貝構造。析構的話 c1 c2 c 三次 傳遞引數和返回引數各一次拷貝建構函式,所以是2次 有兩個物件c...
求C 拷貝建構函式
q嘿仔 include using namespace std template class cmatrix nrow row ncol col 預設建構函式 void setcmatrix int row,int col,const t data 鍵盤輸入 void show 輸出 void in...