概述
本篇章簡單梳理建構函式、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 之類與物件
類就是一類具有共同特徵的群體 物件是這類群體的某乙個具體的個體 上面的描述很迷,接下來我們通過乙個遊戲的例子來解釋一下什麼是類,什麼是物件。你現在玩王者榮耀轉殖模式,假設十個亞瑟在對線,亞瑟這個英雄就可以說是乙個類,而你操作的那個亞瑟是獨一無二的,是乙個具體的物件。每乙個類都有他的屬性和方法,我們可...