下面順序表中的建構函式為什麼是這個樣子的,應該怎麼理解?C 問題。只有50分,全部給了,謝謝幫忙

時間 2021-07-04 17:51:00

1樓:匿名使用者

此為類别範本,該建構函式使用了初始化列表,等價於

seqlist(int sz=defaultsize)

}對於const、引用型別成員在建構函式內對其初始化是不起作用的,必須在初始化列表中初始化。

2樓:篤俠

簡單地講,類别範本是以型別作為形式引數的類。用類别範本例項化一個物件時,首先用實參型別替代類别範本定義中的型別形參而形成一個具體的類(模板類),然後用這個具體的類建立物件。

比如這個程式:

seqlist是類别範本(type為型別形參名),其功能是實現元素型別為type的順序表。

當用seqlist例項化一個物件(比如 seqlisttest(15); )時,首先用實參型別(int)替代類别範本(seqlist)定義中的型別形參(type)而形成一個具體的類(模板類seqlist),這個類的建構函式可以看成:

seqlist(int sz=defaultsize):m_nmaxsize(sz),m_ncurrentsize(-1)

}所以,執行 seqlisttest(15); 建立test物件時,test物件的資料成員m_nmaxsize的值為15,m_ncurrentsize的值為-1,m_elements的值為新分配的能夠存放15個int型資料的記憶體塊的首位元組地址。

3樓:匿名使用者

大哥我菜鳥。。一點也不懂。。

在c++中物件成員必須在含有引數的建構函式中初始化,並且在初始化成員列表中?這句話有問題吧?

4樓:周生

看你的成員變數型別和繼承方式了,公有成員變數和公有繼承,直接賦值就行了。私有成員變數,繼承之後要在初始化列表中初始化

初始化表的必要性

1) 類中包含常量和引用型的成員變數。必須通過建構函式和初始化表顯式地對其進行初始化。

2) 在子類中顯式地構造其基類部分。

class a

a (int n) : m_n (n) {}private:

int m_n;

};class b

b (int n) : m_a (n) {}private:

a m_a;};

5樓:

不一定在有引數建構函式初始化,不一定要在列表中初始化。

希望能幫到你,**不清楚再問。

例如:#include

using namespace std;

class a

};int main()

6樓:楊星光

1建構函式可以沒有引數

2如果沒有引數,那麼在建構函式中如資料成員直接賦值

如:class student;}

7樓:匿名使用者

可以無參建構函式初始化,不一定要在成員列表中,這只是其中的一種方式

C 類中為什麼只有建構函式和拷貝建構函式有引數列表

對類的成員函式宣告來說,參數列不是建構函式和拷貝建構函式的專利,一般的類的成員函式,也是可以選擇引數個數的。並且還要注意,就算是那些比較 特殊 的成員函式,如operator 也是有函式表的,而且拷貝建構函式由於其功能的原因,它的參數列還是固定格式的。我猜你是想問,為啥解構函式就沒有參數列呢,如果是...

在JAVA中,什麼是過載的建構函式

mxh快樂 建構函式的過載 舉個例子 public student public student string name public student string name,string age 上面三個函式都是student類的建構函式。第一個是無參的,第二個有一個引數,第三個有兩個引數。這就是...

下面四組中,按字母表順序排列的那組是急急急急

jx熱愛課本 一.c二.a 三.a四.a 五.zai miao shi sha jian xia六.市 以 七.誼 役 驛 藝 益 屹 衣 譯八.遙 要 好 夭 靠 稍九.10 9 3 8 6 2 7 4 5 1十.抱歉,不會打音調。十一.zhan chen pai cu fen第二聲 hao 十二...