C++複習

一 面向對象(oop)

1.封裝

2.繼承

基類---->派生類

3.多態:派生類中可能出現與基類同名的方法。

針對基類與派生類同名的方法,派生類要有自己的行爲,必須要覆蓋基類的方法。

 

二 虛函數

virtual  funname(。。)                // 基類允許實現該方法

純虛函數:virtual funname()=0     //基類不存在對該方法的實現。

一個類中包含了一個純虛函數,那麼該類叫抽象類。 抽象類不能實例該類的對象。

如果派生類也沒有去實現基類中的純虛函數,那麼該派生類也是一個抽象類。

 

三 多態(override)要和函數的重載(overload)區分

1.多態是在存在繼承關係的類中,看是否有相同的方法。

2.重載是在一個類中去比較。

a.參數的數據類型不同

b.參數的個數不同

c.方法名一定要相同

 

四. 繼承的三種方式
private:
  private   ---------->不能繼承
  public    ----------> private
  protected ----------> private

public:
  private   ---------->不能繼承
  public    ---------->public
  protected ---------->protected

protected:
  private   ---------->不能繼承
  public    ---------->protected
  protected ---------->protected


private:只能在本類中訪問私有成員變量或私有的成員函數

public:  任何一個地方都可以訪問

protected:本類中可以訪問,具有繼承關係的類都可以訪問

 

五.如果非要在一個類中訪問某個類的私有變量或函數

1.採用友元函數

class A

{

friend int funname();  //該函數可以訪問A類的私有變量及私有函數

};

2.採用友元類

class A

{

friend class B;                   //B類可以訪問A類的私有變量及私有函數

};

 

六.符號重載特點:

1.只是給C++原有符號增加新的功能,並不是創建一個新的符號

2.符號優先級不能改變

3.一元符號仍然是一元符號。

符號重載的方式:

1.成員函數重載

2.友元重載(<< ,>>這兩個符號只能通過友元重載)

 

七.引用和指針的區別:

1.引用變量不需要開闢空間,而指針變量肯定佔用了空間

2.引用變量一定要初始化,指針變量不要求初始化

3.引用變量初始化後就不能再改變,而指針變量可以重新指向新的地址

引用一般用在函數的參數與返回值:int &  fun(int &a)

 

八.const變量

1.const變量存在靜態全局區

2.const變量一定要初始化。

3. const int  *p;      //   *p爲常數,p可以指向其他地址

     int   *  const  p;   // 指針p爲常數,指向的地址一旦確定就不能修改,p指向的地址裏保存的值可以修改。

4.const在類中使用的特點:

a.類裏面使用const

int fun() const  // 只在定義時加該關鍵字,實現不需要該關鍵字

b.對象使用const(常對象)

1.不能修改該對象中的成員變量

2.常對象只能調用常函數(因爲常函數也不修改成員變量);

 

九.static在類中使用

1.靜態成員變量只能用在靜態函數中

2.靜態對象只能調用靜態函數

3.靜態函數中不能調用非靜態函數

static int funname() // 只在定義時使用該關鍵字,實現時不需要

靜態變量和靜態方法是屬於類自己的,不是屬於對象的,在靜態方法中不能使用this指針。

發佈了12 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章