第11講
“引用”就是指的對象的另一個名字或變量的另一個名字,注意:定義引用的時候就必須初始化,如下圖就是錯誤的
引用也不可以直接對其賦值“直接量”,下圖所示就是錯誤的,引用必須賦值變量
const引用就是引用const常量的引用(如下圖)
非const引用不能初始化爲一個const常量(如下圖就是錯誤的)
注意:const引用可以直接初始化爲“直接量”!!!(下面2個圖就是正確的)
const引用可以初始化爲不同類型的對象或變量,而普通非const引用卻不能初始化爲不同類型的對象或變量(下圖是正確的)
const引用和非const引用主要是用於使用函數時,傳遞函數的參數
第十二講
typedef 是給數據類型定義別名的(如下圖 )
第十三講
我們如果需要定義很多的const常量,那麼這個時候就可以使用枚舉(如下圖)
枚舉本質上是一種類型,只是這種類型是我們自己做的
第十四講
類類型
下圖中的名詞解釋:接口:對這個類類型所能進行的操作 實現:包含了類裏全部的代碼
我們一般都是先寫接口 再 寫實現,類的接口裏面要寫類成員(類成員包括數據成員和成員函數),和訪問級別(圖2)
類的操作(成員函數)一般是公有的;類裏的數據一般是私有的(下圖所示)
注意:類的數據成員不能在定義時初始化,如下圖中的revenue在定義時就不能賦值0.0;必須通過構造函數對數據成員進行初始化,
面向對象就是寫類,通過寫類來實現封裝、繼承、和多態;
封裝:類裏的數據設計成私有的,那麼這些私有的數據只能在類的內部使用,在外部只能用類裏公有的成員函數,通過這些公有的成員函數來操作這些被保護(封裝)起來的數據;
注意:類裏沒寫public或private的話,默認就是private;
注意:類可以用class寫,也可以用struct寫,二者是一樣的(下圖中的兩種寫法是一樣的),二者唯一的區別在於:class默認的數據成員是私有的,struct默認的數據成員是公有的
第十五講
頭文件中一般寫以下內容,一般,一個類就單獨用一個頭文件,與頭文件相對應的還有一個頭文件,這個頭文件裏就要include這個頭文件,
頭文件裏寫類的聲明,源文件裏寫類的定義、類的所有成員,注意頭文件裏只能寫聲明不能寫定義,但是可以在頭文件裏寫const常量的定義,然後類的定義也可以寫
程序設計全過程:(下圖)
所謂預處理:就是把頭文件中的內容全部拷貝過來,然後替換掉 include “XXX”
爲了防止頭文件多重包含,我們有了頭文件保護符,所以,每一個頭文件都應該寫上頭文件保護符,一定要防止頭文件多重包含
第十六講
下圖中,std 就是名稱空間,四個點就是作用域操作符,cout 就是名稱(名字),就像文件放在文件夾裏,名稱放在名稱空間裏
以下是使用命名空間和名稱最直白的做法
但是,很明顯,上圖中反覆使用std::cin和 std:: string 很繁瑣,所以使用using的寫法,如下圖所示,那麼寫cin和string時就可以省略 std::
還有一種用 using namespace std 的做法,(下圖所示),那麼只要這一句,所有的命名空間std中的名稱就都using進來了
注意:頭文件中不能使用 using 聲明,必須使用完整的命名空間(即:名稱空間 + ::+ 名稱 )