C 之類與物件一

2022-06-09 22:42:14 字數 2178 閱讀 9378

概述

本篇章簡單梳理建構函式、explicit關鍵字、static、有元、內部類等知識點。

1. 建構函式

在類與物件(二)中已經簡單梳理過內容,此處所說是關於建構函式的初始化列表問題。

1.1 什麼是初始化列表?

以乙個冒號開始,接著是乙個以逗號分隔的資料成員列表,每個"成員變數"後面跟乙個放在括號中的初始值或表示式,結束不需要分號。

public:

date(int year, int month, int day)

: _year(year)

, _month(month)

, _day(day)

private:

int _year;

int _month;

int _day;

1.2 注意事項

每個成員變數在初始化列表中只能出現一次,即初始化只能初始化一次;

類中包含引用成員變數、const成員變數、類型別成員,必須放在初始化列表位置進行初始化;

盡量使用初始化列表初始化,對於自定義型別成員變數,一定會先使用初始化列表初始化;

成員變數在類中宣告次序就是其在初始化列表中的初始化順序,與其在初始化列表中的先後次序無關。

1.3. explicit關鍵字

建構函式不僅可以構造初始化物件,對於單個引數的建構函式,還具有型別轉換的作用,用explicit修飾建構函式,將會禁止單參建構函式的隱式轉換。

public:

date(int year)

:_year(year)

explicit date(int year)

:_year(year)

2. static

static的類成員稱為類的靜態成員,用static修飾的成員變數,稱之為靜態成員變數;用static修飾的成員函式,稱之為靜態成員函式。靜態的成員變數一定要在類外進行初始化。

【特性】

靜態成員為所有類物件所共享;

靜態成員變數必須在類外定義,定義時不新增static關鍵字;

靜態成員函式沒有隱藏的this指標,不能訪問任何非靜態成員;

靜態成員和類的普通成員一樣,也有public、protected、private 3種訪問級別,也可以具有返回值,const修飾符等引數。

3. 有元*

友元可以突破封裝,提供了便利,但友元會增加耦合度,破壞了封裝。

3.1 友元函式鄭州做**手術

友元函式可以直接訪問類的私有成員,它是定義在類外部的普通函式,不屬於任何類,但需要在類的內部宣告,宣告時需要加 friend 關鍵字 。

class date

friend ostream& operator<<(ostream& _cout, const date& d);

friend istream& operator>>(istream& _cin, const date& d);

public:

private:

ostream& operator<<(ostream& _cout, const date& d)

_cout << d._year << "-" << d._month << "-" << d._day;

return _cout;

istream& operator>>(istream& _cin, const date& d)

_cin >> d._year;

_cin >> d._month;

_cin >> d._day;

return _cin;

【注意】

友元函式可訪問類的私有成員,但不是類的成員函式;

友元函式不能用const修飾;

友元函式可以在類定義的任何地方宣告,不受類訪問限定符限制;

乙個函式可以是多個類的友元函式。

3.2 有元類

友元類的所有成員函式都可以是另乙個類的友元函式,都可以訪問另乙個類中的非公有成員;

友元關係是單向的,不具有交換性;

友元關係不能傳遞;

4. 內部類

如果乙個類定義在另乙個類的內部,這個內部類就叫做內部類。

此時這個內部類是乙個獨立的類,它不屬於外部類,更不能通過外部類的物件去呼叫內部類,外部類對內部類沒有任何優越的訪問許可權。

【注意】

內部類就是外部類的友元類,注意友元類的定義,內部類可以通過外部類的物件引數來訪問外部類中的所有成員,但是外部類不是內部類的友元。

C 之類與物件

都說c 是乙個完全物件導向的語言,我 那天很自豪的也和我說了,好像這個語言很令人振奮。以前學習vb的時候總是感覺很吃力,因為自己對 基本根本沒有親和力,在以前如果給自己一大批 讓自己按著敲,那麼這個對於當時的我來說肯定是世界上最幸福的事情了。很喜歡安靜的敲 的感覺 現在越來越能體會到,是被人賦予靈魂...

C 之類與物件

類的定義語法 私有成員 公有成員 保護成員 物件 由類定義的例項,通過物件可以訪問類的公有成員,私有成員只能通過類內成員 友元函式 友元類訪問 建構函式 預設建構函式 一般建構函式 拷貝建構函式 採用引數常引用 類的組合 類的組合是 is a kind of 的關係,要特別注意類的組合函式的建構函式...

c 之類與物件

類就是一類具有共同特徵的群體 物件是這類群體的某乙個具體的個體 上面的描述很迷,接下來我們通過乙個遊戲的例子來解釋一下什麼是類,什麼是物件。你現在玩王者榮耀轉殖模式,假設十個亞瑟在對線,亞瑟這個英雄就可以說是乙個類,而你操作的那個亞瑟是獨一無二的,是乙個具體的物件。每乙個類都有他的屬性和方法,我們可...