1. 轉(zhuǎn)換函數(shù)
- 若要將單個(gè)值轉(zhuǎn)換為類類型,則需要?jiǎng)?chuàng)建對(duì)應(yīng)的類構(gòu)造函數(shù),其原型大致如下:
c_name(type_name value)
其中,c_name為類名,type_name是要轉(zhuǎn)換的類型名稱。( 注: 在使用的時(shí)候要注意隱式轉(zhuǎn)換可能帶來(lái)的誤解和錯(cuò)誤,恰當(dāng)?shù)氖褂胑xplicit,防止其被用于隱式轉(zhuǎn)換)
- 若要將類轉(zhuǎn)換為其他類型,則需要?jiǎng)?chuàng)建類轉(zhuǎn)換成員函數(shù),其原型大致如下:
operator type_name()
雖然該函數(shù)沒(méi)有聲明返回類型,但需要在函數(shù)實(shí)現(xiàn)的的最后返回所需類型的值。
2. 嵌套結(jié)構(gòu)和類
在類聲明中聲明的結(jié)構(gòu)、類或枚舉,它們的作用域?yàn)檎麄€(gè)類。這種聲明不會(huì)創(chuàng)建數(shù)據(jù)對(duì)象,而只是指定了可以在類中使用的類型。如果聲明是在私有部分進(jìn)行的,那么只能在這個(gè)類中使用。如果是在公部分聲明的,則該結(jié)構(gòu)不僅可以在類中使用,而且還可以通過(guò)類名::嵌套結(jié)構(gòu)
的方式在類的外面使用。
3. 成員初始化列表
對(duì)于類Queue,
class Queue
{
public:
const int qsize;
int num;
}
在編寫(xiě)Queue構(gòu)造函數(shù)的時(shí)候,由于qsize是常量,所以只能對(duì)其進(jìn)行初始化,但不能對(duì)其進(jìn)行賦值,從概念上來(lái)說(shuō),在調(diào)用構(gòu)造函數(shù)的時(shí)候,對(duì)象是在構(gòu)造函數(shù)括號(hào)中代碼執(zhí)行之前就被創(chuàng)建,因此,對(duì)于const數(shù)據(jù)成員,必須在執(zhí)行到構(gòu)造函數(shù)體之前,即創(chuàng)建對(duì)象的時(shí)進(jìn)行初始化。c++提供了一個(gè)特殊的語(yǔ)法來(lái)完成上述工作,即成員初始化列表。
成員初始化列表由逗號(hào)分隔的初始化列表組成(前面帶冒號(hào))。它位于參數(shù)列表的右括號(hào)之后、函數(shù)體左括號(hào)之前。對(duì)于Queue其構(gòu)造函數(shù)可寫(xiě)為:
Queue::Queue(int qs):qsize(qs)
{
num = 0;
}
//或者
Queue::Queue(int qs):qsize(qs),num(0) //初始化列表也適用于普通的數(shù)據(jù)成員
{
}
對(duì)于被聲明為引用的類成員,也只能使用類成員初始化列表的方法進(jìn)行初始化。
注 :不能將成員初始化列表用于構(gòu)造函數(shù)之外的其他類方法。
4. 類內(nèi)初始化
c++11允許類內(nèi)初始化,即在類定義中進(jìn)行初始化。
例如:
class Queue
{
private:
...
Node * front = NULL;
enum {Q_SIZE = 10};
Node * rear = NULL;
int items = 0;
const int qsize = Q_SIZE;
}
這與使用成員初始化列表等價(jià),然而,使用成員初始化列表的構(gòu)造函數(shù)將覆蓋相應(yīng)的類內(nèi)初始化。
-
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
8887瀏覽量
150230 -
Queue
+關(guān)注
關(guān)注
0文章
16瀏覽量
7372 -
C++語(yǔ)言
+關(guān)注
關(guān)注
0文章
147瀏覽量
7176
發(fā)布評(píng)論請(qǐng)先 登錄
動(dòng)態(tài)內(nèi)存管理模塊的設(shè)計(jì)原理與實(shí)現(xiàn)

C語(yǔ)言知識(shí)總結(jié):動(dòng)態(tài)內(nèi)存分配
使用C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)內(nèi)存分配

C語(yǔ)言程序設(shè)計(jì)中動(dòng)態(tài)內(nèi)存分配如何實(shí)現(xiàn)
如何使用LAX_CODEGEN啟用動(dòng)態(tài)內(nèi)存分配?
內(nèi)存的動(dòng)態(tài)內(nèi)存分配實(shí)現(xiàn)
嵌入式C語(yǔ)言動(dòng)態(tài)內(nèi)存分配
請(qǐng)問(wèn)使用動(dòng)態(tài)內(nèi)存分配安全嗎?
使用動(dòng)態(tài)內(nèi)存分配安全嗎
動(dòng)態(tài)內(nèi)存分配是什么意思
RTThread的動(dòng)態(tài)內(nèi)存空間該如何去分配呢
動(dòng)態(tài)內(nèi)存錯(cuò)誤的靜態(tài)檢測(cè)

評(píng)論