1:static成員函數是類的組成部分,但不是任何對象的組成部分,因此static成員函數沒有this指針(成員函數的隱含實參);
static成員函數也不能聲明爲const;但是static變量可以被聲明爲const;
static成員函數可以直接訪問所屬類的static成員,但不能直接訪問所屬類的非static成員。
test_1.h
class test_1
{
public:
//test_1(); //由於存在const成員,因此構造函數必須使用初始化參數列表
test_1(int x) :c_wid(x) { }
~test_1();
private:
//static int s_len = 5; //static靜態成員變量不能在類內部初始化
static int s_len;
//const int c_wid = 5; //使用無誤,但是不推薦,因爲基於類的所有對象的這個成員變量值都一樣,失去了對象的不同特性
const int c_wid;
static const int sc_area;
//const static int sc_area; //與上一行代碼static const效果一樣
};
test_1.cpp
#include "test_1.h"
//static int test_1::s_len = 3; //static關鍵字只能用於類內部的聲明中,定義時不能標示爲static
int test_1::s_len = 3;
const int test_1::sc_area = 15;
test_1::~test_1()
{
}