天天看點

c++期末劃重點

一.基本概念

  1. 抽象:是指對具體問題進行概括,抽出一類對象的公共性質并加以描述的過程;(包括資料抽象和行為抽象)
  2. 封裝:将抽象得到的資料和行為(或功能)相結合,形成一個有機的整體,也就是将資料與操作資料的函數代碼進行有機地結合,形成“類”,其中的資料和函數都是類的成員
  3. 繼承:特殊類的對象擁有其一般類的全部屬性與服務,稱作特殊類對一般類的繼承
  4. 多态1:指一段程式能夠處理多種類型對象的能力(包括強制多态、重載多态、類型參數化多态、包含多态)
  5. 多态2:指同樣的消息被不同類型的對象接收時導緻不同的行為(分為編譯時的多态和運作時的多态)
  6. 運算符重載:指對已有的運算符賦予多重含義,使同一個運算符作用于不同類型的資料時導緻不同的行為
  7. 靜态生存期:如果對象的生存期與程式的運作期相同,則稱它具有靜态生存期

二.代碼樣例:

class SonBase :public Base1, public Base2, public Base3 {  
public:
    SonBase(int a, int b,int c,int d):Base1(a),member1(c),Base2(b),member2(d) {
       cout << "SonBase的構造函數" << endl;
    }
private:             //内嵌的基類對象
Base1 member1;    
Base2 member2;
Base3 member3;   //該對象所屬類無 有參構造函數
};
2.虛基類(繼承)
class Base1 :public Base {
public:
virtual void display() const;  //子類對父類的虛函數的重寫,聲明時virtual關鍵字可加可不加
};
void Base1::display() const{       //實作時不可加
    cout << "第一個子類Base1的重寫" << endl;
}
3.運算符重載
/*運算符重載*/
class Complex {
public:
    Complex(double r = 0.0, double i = 0.0) {
       real = r;
       image = i;
    }
void display() const;
Complex operator+(const Complex& c1) const; //成員函數(雙目)
friend Complex operator-(const Complex& c1, const Complex& c2);  //非成員函數(雙目)
Complex operator++() const; //成員函數(單目前置)
Complex operator++(int) const; //成員函數(單目後置),聲明中形參名可省略不寫
private:
double real;
double image;
};
4.函數模闆
template<class T>
void my_swap(T &a, T &b) {
T c = a;
a = b;
b = c;
}      

繼續閱讀