1. 程式人生 > >C++類中的靜態成員與靜態方法

C++類中的靜態成員與靜態方法

C++中,若類的方法前加了static關鍵字,則該方法稱為靜態方法,反之為例項方法。靜態方法為類所有,可以通過物件來使用,也可以通過類來使用。但一般提倡通過類名來使用,因為靜態方法只要定義了類,不必建立類的例項就可使用。靜態方法只能呼叫靜態變數。

呼叫方式

  1. 通過類的例項物件去呼叫 呼叫格式為: 物件名.方法名
  2. 通過類名直接呼叫 呼叫格式為: 類名::方法名

注意

  • 靜態方法只能訪問類的靜態成員,不能訪問類的非靜態成員;
  • 非靜態方法可以訪問類的靜態成員,也可以訪問類的非靜態成員;
  • 靜態方法既可以用例項來呼叫,也可以用類名來呼叫。

使用

#include<iostream>
using namespace std; class CStaticTest{ public:   CStaticTest(int a) {   this->a = a;   }   ~CStaticTest(){}   static int add(CStaticTest& c1, CStaticTest& c2) {   return c1.a + c2.a; } private:   int a; }; int main(){   CStaticTest tmp1(1);   CStaticTest tmp2(2);   int sum1 = tmp1.add(tmp1, tmp2);   int
sum2 = CStaticTest::add(tmp1, tmp2); cout << sum1 << endl;   cout << sum2 << endl;   return 0; }