*--- 要點 ---*1. 類2. 繼承3. 虛基類4. 虛函數,純虛函數,抽象類別5. 運算子多載和友元6. 模版7. 單一實例*--- 詳解 ---*
1. 虛基類 (詳細講解) http://blog.renren.com/share/222770247/8361030810 【為什麼引入虛基類】 多重繼承時,如果類B1和B2都繼承自類A,類C又繼承自B1和B1,會出現如下問題 (1) C中就有兩個A的基類對象 (2) 假如B1和B2分別實現了A.fun()函數,調用C.fun()就會出現歧義 【
虛基類的使用】
class A{}; class B1 : public virtual A{}; class B2 : public virtual A{}; class C : public B1, public B2{}; 虛基類通常都是由最外層衍生類別來構造的。本例中,D的建構函式負責建立A的對象;在B和C的建構函式中,用於初始化基類A的那部分代碼則不會被執行。
2. 虛函數,純虛函數,抽象類別 虛函數:函數名前加 virtual的函數,如virtual
void print(int param){}; 純虛函數:virtual void print(int param)=0;
抽象類別:含有純虛函數的類
區別:虛函數可以實現,可以被調用,純虛函數只能由子類實現;不能定義抽象類別對象,但是可以定義抽象類別指標
3. 運算子多載和友元
友元函數:運行訪問類的所有函數。
詳見:http://blog.csdn.net/jarvischu/article/details/6628559
//重載 +double operator + (int b); //預設一個運算元是類本身//重載輸入操作符,友元 friend istream& operator >>(istream& in,CRectangle& cls);
4. 模版
template<class T> 詳見 http://blog.csdn.net/jarvischu/article/details/6577817
5. 單一實例
類只有一個執行個體對象 實現方法:將建構函式設定為私人,通過成員函數提供唯一的類對象的訪問
*--- 代碼 ---*
#include <iostream>using namespace std;//////////////////////////////////////////////單一實例class Singleton {public:static Singleton* GetInstance(){return pInstance;}void print(){cout<<"Hello World"<<endl;} private:Singleton(){}private:static Singleton* pInstance;};//初始化靜態成員Singleton* Singleton::pInstance=new Singleton(); int main(){Singleton* s = Singleton::GetInstance();s->print();return 0;}
接觸技術越多越久,很多要點都會模糊忘卻,該系列文章甚為淺顯,只作為協助博主個人快速回憶起某技術概況的簡易筆記,高手自覺飄過。