C 學習筆記 類和物件(下篇)

2021-10-05 16:59:00 字數 1925 閱讀 4777

#include

using

namespace std;

//初始化列表

//class b

//private:

// int _a;//4

// char _b;//1

//};

//class a

// /*class d

// private:

// int _g;

// };*/

//// void display()

//private:

// int _year;//4

// int _month;//4

// int _day;//4

// static int _h;//4在靜態區,不計算到a類大小裡面

// //必須初始化的成員變數

// b _b;//記憶體對齊之後是8

// int& _c;//4

// const int _d;//4

// //};

//int a::_h = 1;

//class c

//// void display()

//private:

// static int _f;//靜態的資料在,靜態區儲存

// int _j;

// int _k;

// int _w;

// int _z;

//};

//int c::_f = 1;

//class a

// a(const a& t)

// static int getacount()

//private:

// static int _scount;

//};

//int a::_scount = 0;

//void testa()

//int

main()

(1).建構函式完成的是成員變數的初始化,初始化只有一次,我們之前完成的可以叫做成員變數的賦值,可以多次呼叫賦值。

(2).建構函式構造時的順序,是根據成員變數定義的順序。

(3).自定義函式最先初始化。

(4).const 修飾 引用 自定義型別(沒有預設建構函式) 必須在初始化列表初始化。

(1).友元關係是單項的,友元關係不能傳遞。

(2).友元類實現了在類外面訪問,某些友元的私有成員。

(1).定義在類內部的類成為內部類。

(2).計算類大小的時候,內部類不算進去,並且static 修飾的成員變數也不算進去,因為它在靜態區,初始化需要在類外初始化,並且可以被內部類直接呼叫。

(3).內部類就是外部類的友元類,可以直接訪問外部類的成員函式,和成員變數。

(1).static修飾的成員變數,屬於全域性域,存在靜態區,必須在類外面定義。

(2).static修飾的成員函式,可以直接通過類名加作用域限定符呼叫。

(3).靜態成員函式沒有this指標,所以不能訪問非靜態成員。

(4).靜態成員和類裡面的普通成員變數一樣。

(1).建構函式不僅可以構造與初始化物件,對於單個引數的建構函式,還具有型別轉換的作用。

加了explicit關鍵字後,就防止隱式型別轉化。

c 類和物件(下篇)

再談建構函式 c 11 的成員初始化新玩法。static成員 友元內部類 初始化列表 以乙個冒號開始,接著是乙個以逗號分隔的資料成員列表,每個 成員變數 後面跟乙個放在括 號中的初始值或表示式。每個成員變數在初始化列表中只能出現一次 初始化只能初始化一次 類中包含以下成員,必須放在初始化列表位置進行...

C 學習筆記 類和物件(1)

實體 客觀世界存在的某種事物,一杯茶,乙個人。每個實體都有屬性,其中,特徵稱為靜態屬性,功能稱為動態屬性。比如人的特徵,人的功能 物件 對實體進行抽象得到了物件。類 class 具有相同特徵與功能的物件集合。物件是類的例項化 instance 如果出現以下幾種情況,程式就會執行析構函式 如果在乙個函...

C 學習筆記 類和物件 三

靜態的資料成員在記憶體中只佔乙份空間。每個物件都可以引用這個靜態資料成員。靜態資料成員的值對所有物件都是一樣的。如果改變它的值,則在各物件中這個資料成員的值都同時改變了。這樣可以節約空間,提高效率。關於靜態資料成員的幾點說明 1 如果只宣告了類而未定義物件,則類的一般資料成員是不佔記憶體空間的,只有...