類的深入刨析(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...