最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

二、類與對象

2022-11-04 18:13 作者:愛玩UE5的小哥哥  | 我要投稿

一.類的定義

為了以后的筆記方便就把.h文件與.cpp文件合并。

1.訪問權(quán)限:能不能訪問該類中的成員

①Public

②Protected?

③Private

聲明:

在類的內(nèi)部(定義類的代碼內(nèi)部),無論成員被聲明為 public、protected 還是 private,都是可以互相訪問的,沒有訪問權(quán)限的限制。

在類的外部(定義類的代碼之外),只能通過對象訪問成員,并且通過對象只能訪問 public 屬性的成員,不能訪問?private、protected 屬性的成員。

2.成員變量(屬性)

3.成員函數(shù)(方法)

①構(gòu)造函數(shù)

構(gòu)造函數(shù)的調(diào)用是強(qiáng)制性的,一旦在類中定義了構(gòu)造函數(shù),那么創(chuàng)建對象時就一定要調(diào)用,不調(diào)用是錯誤的。如果有多個重載的構(gòu)造函數(shù),那么創(chuàng)建對象時提供的實參必須和其中的一個構(gòu)造函數(shù)匹配;反過來說,創(chuàng)建對象時只有一個構(gòu)造函數(shù)會被調(diào)用。

作用:對成員變量進(jìn)行初始化

a.默認(rèn)構(gòu)造函數(shù)

程序中自己不定義構(gòu)造函數(shù),那必然有一個默認(rèn)的構(gòu)造函數(shù)將對成員變量進(jìn)行初始化

b.程序員定義的構(gòu)造函數(shù)(無參、有參)

驗證了創(chuàng)建對象時調(diào)用構(gòu)造函數(shù)

c.構(gòu)造函數(shù)的重載:在創(chuàng)建對象時根據(jù)傳遞的實參來判斷調(diào)用哪一個構(gòu)造函數(shù)。

②普通成員函數(shù)

二.對象的創(chuàng)建及訪問類中的成員

創(chuàng)建對象時就一定要調(diào)用構(gòu)造函數(shù),不調(diào)用是錯誤的。

1.普通對象

格式:類 對象名;

例:Date a;

2.指針對象

①在棧上創(chuàng)建對象

創(chuàng)建的對象在棧上分配內(nèi)存,需要使用&獲取它的地址

類 對象名;

類 *指針名 = &對象;

例:Date a;

? ? ? ?Date *p = &a;

②在堆上創(chuàng)建動態(tài)對象

使用 new 在堆上創(chuàng)建出來的對象是匿名的,沒法直接使用,必須要用一個指針指向它,再借助指針來訪問它的成員變量或成員函數(shù)。

類?*指針名 = new 類;

Date *p = new Date;

3.對象數(shù)組

用構(gòu)造函數(shù)對象數(shù)組中的每個元素進(jìn)行初始化。具體哪些元素用哪些構(gòu)造函數(shù)初始化,取決于定義數(shù)組時的寫法;(也可以這么理解:對象數(shù)組的初始化通常也是由構(gòu)造函數(shù)來完成的)

① 類 對象數(shù)組名[數(shù)組元素個數(shù)];

例:Date a[2] = {Date(),Date()};

與普通數(shù)組的表現(xiàn)形式一致(int a[2] = {1,8})

②Date *p[3] = {new Date(),new Date(1),new Date(55,88)}

指針數(shù)組分別指向三個new出來的對象

4.對象引用

類 對象名;

類 & 引用名 = 對象;

例:Date a;

? ? ? ?Date & r = a;

三.類成員的修飾符

1.const修飾符

①const修飾類的成員變量

不能在類里直接初始化const成員變量,const成員變量屬于某個對象,不同對象const數(shù)據(jù)成員的值可能不同

const修飾類成員變量只能在類的構(gòu)造函數(shù)的初始化列表中進(jìn)行初始化

②const修飾類的成員函數(shù)

const 成員函數(shù)可以使用類中的所有成員變量,但是不能修改它們的值,這種措施主要還是為了保護(hù)數(shù)據(jù)而設(shè)置的。

③const修飾對象

const 可以用來修飾對象,稱為常對象。一旦將對象定義為常對象之后,就只能調(diào)用類的 const 成員(包括 const 成員變量和 const 成員函數(shù))了。

語法

定義常對象的語法和定義常量的語法類似:const? class ?object(params);

可以定義 const?指針:const class *p = new class(params);

class為類名,object為對象名,params為實參列表,p為指針名。兩種方式定義出來的對象都是常對象。

2.static修飾符

static可以修飾類中的成員變量(屬性)與成員函數(shù)(方法);可以實現(xiàn)同一類對象之間的數(shù)據(jù)共享,static修飾過的成員屬于類,不屬于某個具體的對象。

①static修飾成員變量(統(tǒng)計案例典型)

聲明? ?static 變量名? 例:static int count;

初始化? 必須在類體外部

? 對象的類::變量名 = xxx;? 例:?int student::count = 10;

②static修飾成員函數(shù)

在C++中,靜態(tài)成員函數(shù)的主要目的是訪問靜態(tài)成員。getTotal()、getPoints() 當(dāng)然也可以聲明為普通成員函數(shù),但是它們都只對靜態(tài)成員進(jìn)行操作,加上 static 語義更加明確。

四.對象成員

一個類的對象是另一個類的成員變量;

類名::構(gòu)造函數(shù)名(參數(shù)表): 成員變量1(參數(shù)表), 成員變量2(參數(shù)表), ...
{
? ? //TODO:
}

對于基本類型的成員變量,“參數(shù)表”中只有一個值,就是初始值,在調(diào)用構(gòu)造函數(shù)時,會把這個初始值直接賦給成員變量。
但是對于成員對象,“參數(shù)表”中存放的是構(gòu)造函數(shù)的參數(shù),它可能是一個值,也可能是多個值,它指明了該成員對象如何被初始化。


二、類與對象的評論 (共 條)

分享到微博請遵守國家法律
郧西县| 历史| 万安县| 惠东县| 呼图壁县| 闽侯县| 双辽市| 乐业县| 广饶县| 图们市| 甘德县| 曲周县| 自贡市| 阜南县| 宣汉县| 太仓市| 舞钢市| 当雄县| 含山县| 刚察县| 武平县| 皋兰县| 海城市| 洞口县| 临漳县| 烟台市| 延津县| 扎囊县| 涿州市| 济宁市| 甘肃省| 陇西县| 黎城县| 汕尾市| 沽源县| 吉木萨尔县| 新建县| 奉贤区| 益阳市| 五寨县| 吉林市|