成员函数(C++)

类可以包含数据和功能。 这些功能称为 “成员函数”。所有非静态函数声明在类声明中称为 " 成员函数和调用使用成员选择运算符 (.– AMP_GT)。 当调用成员从同一个函数,对象中的其他成员函数,成员选择运算符可以省略。 例如:

// 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()。 但是,使用对象 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 的成员函数调用。 但是,使用 – AMP_GT 成员选择运算符, pptCurrent 所指向的对象的成员函数调用。

请参见

参考

选件类、结构和联合