1,類的組合:
1,類不是孤立存在的,類之間都會有一些關係,組合就是類的基本關係之一;
2,電腦一般而言是由 cpu、記憶體、主機板、鍵盤和硬碟等部件組合而成;
3,學習電腦組裝需要多少時間?學習電腦組裝是否需要學習顯示器、鍵盤、滑鼠、主機板、記憶體等部件的設計與製造?
1,我們可以使用乙個類,但是可能對類的內部狀態一無所知;
2,類的封裝:
1,類通常分為以下兩個部分:
1,類的實現細節;
1,使用者往往可以忽略;
2,類的使用方式;
2,當使用類時,不需要關心其實現細節;
1,普通使用者使用手機:
1,只需要學習如何發簡訊、打**、拍照等;
2,對類的使用者而言,簡單且能夠滿足需求才可以,如果太複雜,則不會有人使用這個類;
3,封裝對於類的使用者而言是非常重要的概念,必須知道當我們建立類的 時候,一定要將複雜的實現細節全部封裝在內部,不讓使用者知道,對於使用者而言我們留給他們的就是一些非常簡單的使用方式就可以了,這就是類的封裝;
3,當建立類時,才需要考慮其內部實現細節;
1,手機開發工程師:
1,需要考慮手機內部的實現細節;
3,封裝的由來:
1,根據經驗:並不是類的每個屬性都是對外公開的;
1,如:女孩兒不希望外人知道自己的體重和年齡;
2,如:男孩兒不希望別人知道自己的身高和收入;
2,而一些類的屬性是對外公開的:
1,如:人的姓名、學歷、國籍等;
3,必須在類的表示法中定義屬性和行為的公開級別:
1,類似檔案系統中檔案的許可權;
2,「公開級別」就是封裝的體現;
4,c++ 中類的封裝:
1,肯定要對類的行為和屬性進行封裝,所以定義的訪問級別要作用於成員變數和成員函式;
1,c++ 中已經可以對類成員進行訪問級別的定義了;
2,成員變數:c++ 中用於表示類屬性的變數;
3,成員函式:c++ 中用於表示類行為的函式;
4,c++ 中可以給成員變數和成員函式定義訪問級別:
1,public:
1,成員變數和成員函式可以在類的內部和外界訪問和呼叫;
2,private:
1,成員變數和成員函式只能在類的內部被訪問和呼叫;
3,這兩個關鍵字體現了封裝的概念;
5,類成員的訪問屬性程式設計實驗:
1 #include 2 #include 36,類成員的作用域:4struct
biology 5;
89struct
animal : biology
1016
};17
18struct
plant : biology 19;
2223
struct
beast : animal
2428
};29
30struct
human : animal
3136
37void
work()
3841
};42
43struct
girl : human
4457
};58
59struct
boy : human
60
76};
7778
intmain()
79
1,類成員的作用域都只在類的內部,外部無法直接訪問;
1,所以類成員函式可以直接訪問成員變數和成員函式;
2,外部函式要通過物件(除了靜態成員函式通過類訪問)來訪問類的成員;
3,類的內部還是外部的判斷依據是:是否定義在類的裡面;
2,成員函式可以直接訪問成員變數和呼叫成員函式;
3,類的外部都可以通過類變數訪問 public 成員;
4,類成員的作用域與訪問級別沒有關係:
1,類的作用域僅是為了說明在類的內部是可以訪問的,不管有沒有訪問級別;
2,訪問級別僅僅是為了外部函式訪問類的成員而準備;
1,c++ 中用 struct 定義的類中所有成員預設為 public;
7,類成員的作用域程式設計實驗:
1 #include 21,對於類而言是有作用域的,類的作用域僅僅指的是類的成員變數和成員函式 的作用域,在整個類中;3int i = 1;4
5struct
test619
};20
21int
main()
22
2,類外部訪問類內部成員必須同過物件(或類)來訪問;
3,總而言之:
1,類的內部:通過類的作用域訪問,與訪問級別無關;
2,類的外部:通過類的物件(或類)訪問,有訪問級別的限制;
8,小結:
1,類通常可以分為使用方式和內部細節兩部分;
2,類的封裝機制使得使用方式和內部細節相分離;
1,通過封裝給類成員定義訪問級別,以 public 成員作為使用方式,以 protected 和 private 作為內部細節;
2,只有這樣,我們的程式設計才可能簡單、產生的 bug 才可控;
3,c++ 中通過定義類成員的訪問級別實現封裝機制;
4,public 成員可以在類的內部和外界訪問和呼叫;
5,private 成員只能在類的內部被訪問和呼叫;
C 中的類與封裝
c 中的類與封裝 1,類的組合 1,類不是孤立存在的,類之間都會有一些關係,組合就是類的基本關係之一 2,電腦一般而言是由 cpu 記憶體 主機板 鍵盤和硬碟等部件組合而成 3,學習電腦組裝需要多少時間?學習電腦組裝是否需要學習顯示器 鍵盤 滑鼠 主機板 記憶體等部件的設計與製造?1,我們可以使用乙...
c 中類的封裝
連線directshow filter cvideo 類中,這樣程式簡潔明瞭,易於操作,不容易出錯,提高了程式的魯棒性。1.類的定義 類是定義同一類所有物件的變數和方法的藍圖或原型。例如,可以建立乙個定義包含當前檔位等例項變數的自行車類。這個類也定義和提供了例項方法 變檔 剎車 的實現。例項變數的值...
C 類與封裝的概念
事物的難度遠遠低於對事物的恐懼!這節我們來學習類與封裝的概念,我們知道,一般電腦都是由cpu 記憶體 主機板 硬碟等部件組合組成,像下邊這樣 但是我們組裝電腦的時候,僅僅是把硬碟 記憶體 cpu 主機板等這些部件的介面相互連線起來就行,我們不會去關注硬碟 cpu 主機板等他們的內部是怎麼實現的,組裝...