C++ 學習小結

//c++中動態內存分配用new,C中用malloc
//內聯函數--
//函數重載 名字相同,參數個數或者參數類型不同,定義函數時最右邊參數可以缺省
//缺省參數提高程序的可擴充性

//結構化程序設計沒有封裝和隱藏(接口)
//面向對象程序設計 函數可重用性------程序規模大的時候
//面向對象程序設計 = 類+類+類++++類
//四大基本特點: 抽象 封裝 繼承 多態
//面向對象的程序設計模式
//
//成員變量和成員函數
//對象佔用的內存空間和struct一樣的。
//對象值包含成員變量,成員函數不佔用對象內存空間
//沒有數是公有的,就是私有的

//構造函數,名字與類名相同,可以有參數,不能有返回值
//構造函數給對象進行初始化,不寫就是默認的無參數的構造函數,不做任何操作
//有對象就有構造函數,
//一個類可以有多個構造函數
//有構造函數,對象就要初始化

//複製構造函數,一個類有一個複製構造函數
//複製構造函數作用:1,一個對象初始化同類的另一個對象、
//2、一個函數參數是對象,就是用的複製構造函數
//3,、返回值是對象時,用的複製構造函數

//一個類可以有多個構造函數,但是隻有一個析構函數
//析構函數沒有參數,沒有返回值

//靜態成員函數中不能使用this指針,靜態成員函數的參數個數沒有多一個!
//靜態成員函數沒有作用於哪一個對象,放在對象內存外部
//靜態成員變量是每一個對象共享的,sizeof不會計算靜態成員變量
//靜態成員不需要通過對象就可以進行訪問
//靜態成員變量和靜態成員函數本質是全局變量和全局函數
//靜態成員變量要初始化或者申明
//靜態成員函數中不能訪問費靜態成員變量及函數--因爲靜態成員函數不屬於哪一個對象

//先執行成員對象的構造函數,然後執行封閉類的構造函數
//先構造的就後析構,先初始化的後消亡
//先執行封閉類的析構函數,後執行成員對象的析構函數

//常量對象 加const,可以執行常量成員函數,因爲其不會修改成員值
//常量成員函數 不能修成員函數的值(除了static變量),也不能調用同類的非常量成員函數(除了static函數外)
//兩個成員函數,名字和參數表都一樣,但是一個加了const,這個算是函數重載,而不是重複定義
//不能通過常引用修改其引用的變量---引用一般加const,防止數據被修改

//友員:兩種 友員函數 友員類
//構造函數和析構函數也可以聲明爲友員函數
//友員類之間的關係不能傳遞,不能繼承

//派生類 --
//派生類內存空間包含基類對象內存空間,基類內存在前,派生在後
//派生類覆蓋基類中相同的函數,可以調用基類的這個函數

//繼承 目的 :代碼重用
//類 與 類 的關係: 繼承 或者 複合
//不要定義同名的成員變量,但是可以同名的成員函數

//派生類初始化基類對象-初始化列表

//public繼承的複製規則

//多態----提高程序的可擴充性
//構造函數和靜態成員函數不能是虛函數
//派生類中和基類中虛函數同名同參數的函數,不加vitual也自動成爲虛函數
//多態的實現---虛函數表,佔用內存空間前面4或8(64位系統)個字節
//基類的析構函數是虛函數,其派生類統統都成了虛函數,建議這麼做
//純虛函數,沒有函數體=0,,包含純虛函數就是抽象類,其不能創建抽象類的對象

//函數模板
//類模板
//STL
//輸入輸出
//運算符重載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章