1.虛函數主要作用是建立抽象模型,從而達到方便擴展系統的目的。
虛函數必須是基類的非靜態成員函數,其訪問權限可以是protected或public
在基類的類定義中定義虛函數的形式爲
virtual 函數返回值類型 虛函數名(形參表)
{
函數體
}
純虛函數是指爲不具體實現的虛函數,是一種特殊的虛函數。
純虛函數是一種特殊的虛函數,其一般格式是
class <類名>
{
virtual <類型><函數名>(<參數表>) = 0;
}
區別:
純虛函數是虛函數的一個子集,用於抽象類,含有純虛函數的類就是抽象類,它不能生成對象
純虛函數用來定義沒有意義的實現,用於抽象類中需要交給派生類具體實現的方法。
2.指針式用來存儲內存地址的變量,它指向單個對象的地址,除void指針類型外,指針的數據類型與所指地址的變量數據類型必須保持一致。
3.成員變量訪問權限
private:只能由該類中的方法訪問,是私有變量,不能被該類的對象訪問
protected:可以被該類中的方法和其友元函數訪問,但不能被該類的對象訪問
public:可以被該類中的方法和其友元函數訪問,是公有變量,也可以由該類對象訪問
4.多態 “一個接口,多種實現”
多態性是允許你將父對象設置成爲和一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。
C++中,實現多態有以下方法:虛函數,抽象類,重載,覆蓋,模板。
5.STL 標準模板庫
提供一些通用的代碼,包括容器,迭代器和算法
當遇到某些功能在代碼實現上相同,不同的只是處理類型,最好對代碼重構,將其中共性提出來,以實現代碼重用。
函數模板技術室指使用了模板技術定義了參數化類型的非成員函數,使得程序能夠使用不同的參數類型調用相同的函數。
類模板是使用模板技術的類,描述了能夠管理其他數據類型的通用的數據結構。
類模板技術常用來建立包含其他類型的容器類,如隊列,鏈表和堆棧。
容器是容納特定類型對象的集合,因此容器中的對象必須是同一類型,而且該類型必須是可拷貝構造和可賦值的。