C++程式設計學習筆記:2 類和物件初探 內聯成員函式和過載成員函式

b10l07發表於2017-12-07

之前我們說過,行內函數,適用於函式內語句特別少,函式呼叫開銷無法忽略的場合。

類的成員函式也可以定義為行內函數,定義方法有兩種:

  1. inline + 成員函式宣告
  2. 整個函式體出現在類定義內部

例如:

class A {
   inline void func1();
   void func2()
   {
   };
};

void A::func1()
{
}

在類A中,func1和func2都是內聯成員函式。

成員函式還可以被過載,過載時,函式的入參需要有所不同。如引數個數不同,或引數型別不同。

例如:

class Location {
   ...
   void value_x(int v);
   int value_x();
};

這裡的兩個value_x函式,是兩個過載函式,因為其入參不同。第一個為賦值函式,第二個為取值函式。

再看一個錯誤的例子:

class Location {
   ...
   void value_x(int v=5);
   int value_x();
};

因為第一個函式引數有預設值,所以當呼叫value_x()時,產生二義性,編譯器會報錯。

課程錄影

北京大學郭煒/劉家瑛老師,C++程式設計課程錄影

相關文章