C 類 學習筆記

2021-10-07 05:52:43 字數 1706 閱讀 1511

類的深入刨析(i)

建構函式

析構函式

拷貝建構函式

何時呼叫建構函式和析構函式

預設的逐個成員賦值

類的深入刨析(ii)

運算子過載字串和陣列物件

繼承多型性

成員訪問說明符public、private和protected類的作用域和類成員的訪問

物件的名稱或者物件的引用要結合圓點成員選擇運算子(.)來訪問類的public成員

物件的指標則要結合箭頭成員選擇運算子(->)

關於建構函式的說明關於析構函式的說明

int

gethour()

const;

increment::

increment

(int c,

int i)

:count

(c),

increment

(i)

friend

class

classtwo;

void test::

print()

const

隱式地使用this指標列印x,僅僅指明該資料成員的名稱,然後print使用兩種不同的表示法通過this指標訪問x,一種是箭頭運算子(->)緊跟著this指標,另一種是圓點運算子(.)緊跟著間接引用的this指標,當* this與圓點成員選擇運算子(.)一起使用時,括住*this的圓括號是必須的,因為圓點運算子具有比 * 運算子更高的優先順序,如果不使用這對圓括號,表示式 *this.x將被認為與 *(this.x)是相同的,進行編譯時會報錯,因為圓點運算子不能與指標一起使用

t.

sethour(18

).setminute(30

).setsecond(22

);

time * timeptr;

timeptr=

new time;

上面的new運算子為time型別的物件分配大小合適的記憶體空間,呼叫預設的建構函式來初始化這個物件並返回乙個指向new運算子右邊型別的指標(也就是time*)。注意:new可用於動態分配任何基本型別或者類型別

運算子過載的基礎知識

要在類的物件上使用運算子,該運算子必須過載,但是也有三個例外。所有的類都可以用賦值運算子(=)對其資料成員進行逐個成員賦值操作———賦值運算將「源」物件的每個資料成員賦值給「目標」物件的資料成員。同樣,取位址(&)和逗號(,)運算子也可以未經過載就用於任何類的物件。取位址運算子返回物件在記憶體中的位址。逗號運算子從其左側的表示式開始求值至右側表示式。這兩個運算子也都可以過載。

運算子過載的限制

作為類成員函式和全域性函式的運算子比較

運算子函式可以是成員函式或全域性函式。出於效能方面的考慮,全域性函式通常指定為友元函式。成員函式用this指標隱式地獲得類物件的某個引數(對二元運算子來說即左運算元),而二元運算子的兩個運算元引數在全域性函式呼叫中必須顯式列出

過載流插入運算子和流提取運算子

過載一元運算子

過載二元運算子慨念

派生類的宣告

派生類的訪問許可權

派生類建構函式和析構函式的定義及使用

虛基類的作用、定義和使用多型性的概念

類繼承層次中物件之間的關係

虛函式的定義使用

純虛函式和抽象類

c 學習筆記 類

c 學習筆記 類 refer c primer 在c 中,用類來定義自己的抽象資料結構。在乙個原始檔中,乙個類只能被定義一次 宣告可以多次 如果在多個檔案中定義乙個類,那麼每個檔案定義必須完全相同。可以宣告乙個類而不定義它。這個宣告被稱為向前宣告,是乙個不完全型別 已知其為乙個型別,但不知道包含哪些...

c 學習筆記 類

物件的定義 類名 物件名 如stock joe 物件使用成員函式 物件名.成員函式名 如joe.show 呼叫成員函式時,成員函式使用的是呼叫它的物件的資料成員。類所建立的每個物件都有自己的儲存空間,儲存其內部變數和類成員。但每乙個物件都共享類的同一組方法。類的建構函式和析構函式 建構函式是為了在構...

c 學習筆記 類繼承

現在有乙個記錄身份id的類 ifndef head h define head h include include using namespace std class idcard endif 實現部分 include head.h idcard idcard const string n,cons...