C++ static const 和 static const

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()
{
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章