共用方式為


成員函式 (C++)

類別可以包含資料和函式。 這些函式稱為「成員函式」。在類別宣告中宣告的任何非靜態函式均視為成員函式,並且使用成員選取運算子 (.–>) 呼叫。 從同一個類別的其他成員函式呼叫成員函式時,可以忽略物件和成員選取運算子。 例如:

// member_functions1.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

class Point
{
public:
   short x()
   {
      return _x;
   }
   
   short y()
   {
      return _y;
   }

   void  Show()
   {
      cout << x() << ", " << y() << "\n";
   }
private:
   short _x, _y;
};

int main()
{
   Point pt;
   pt.Show();
}

請注意,在成員函式 Show 中呼叫其他成員函式 x 和 y 時,不需使用成員選取運算子。 這些函式的隱含意義是 this->x() 和 this->y()。 不過,在 main 中必須使用物件 pt 和成員選取運算子 (.) 選取成員函式 Show。

使用成員選取運算子或指定完整函式名稱 (包括類別名稱) 皆可呼叫在類別中宣告的靜態函式。

注意事項注意事項

使用 friend 關鍵字宣告的函式不會被視為其宣告 friend 之類別的成員 (但可以是其他類別的成員)。friend 宣告會控制成員函式對類別資料的存取權限。

下列類別宣告示範宣告和呼叫成員函式的方式:

// member_functions2.cpp
class Point
{
public:
   unsigned GetX()
   {
      return ptX;
   }
   unsigned GetY()
   {
      return ptY;
   }

   void SetX( unsigned x )
   {
      ptX = x;
   }
   void SetY( unsigned y )
   {
      ptY = y;
   }

private:
    unsigned ptX, ptY;
};

int main()
{
   // Declare a new object of type Point.
   Point ptOrigin;

   // Member function calls use the . member-selection operator.
   ptOrigin.SetX( 0 );
   ptOrigin.SetY( 0 );

   // Declare a pointer to an object of type Point.
   Point *pptCurrent = new Point;
   // Member function calls use the -> member-selection operator.
   pptCurrent->SetX( ptOrigin.GetX() + 10 );
   pptCurrent->SetY( ptOrigin.GetY() + 10 );
}

在上述程式碼中,是使用成員選取運算子 (.) 呼叫物件 ptOrigin 的成員函式。 不過,呼叫 pptCurrent 指向之物件的成員函式時,則是使用 –> 成員選取運算子。

請參閱

參考

類別、結構和等位