C++類中的靜態成員與靜態方法
阿新 • • 發佈:2018-12-09
C++中,若類的方法前加了static關鍵字,則該方法稱為靜態方法,反之為例項方法。靜態方法為類所有,可以通過物件來使用,也可以通過類來使用。但一般提倡通過類名來使用,因為靜態方法只要定義了類,不必建立類的例項就可使用。靜態方法只能呼叫靜態變數。
呼叫方式
- 通過類的例項物件去呼叫 呼叫格式為: 物件名.方法名
- 通過類名直接呼叫 呼叫格式為: 類名::方法名
注意
- 靜態方法只能訪問類的靜態成員,不能訪問類的非靜態成員;
- 非靜態方法可以訪問類的靜態成員,也可以訪問類的非靜態成員;
- 靜態方法既可以用例項來呼叫,也可以用類名來呼叫。
使用
#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;
}