C/C++中const的基本特性

1、 const在C中是隻讀變量,在C++中是常量,c++編譯器會爲const常量新增一個符號表,防止通過地址修改這個const常量,而C編譯器可以通過地址修改const修飾的值


2、 const修飾指針常量,放在*號的左邊是修飾指針所指向的內容,放在*號右邊是修飾指針本身

const int *a;//修飾指針所指向的內容,即這個指針指向的內容不可變
int* const a;//修飾指針,即a不可變 


3、當函數傳入的不需要修改時,我們應該用const修飾這個參數

char *strcpy(char *des, const char *source)
{
	char *tmp = des;
	assert((des != NULL) && (source != NULL));
	while ((*des++ = *source++) != '\0');
	return tmp;
}

4、當一個類的成員函數被聲明爲const時,則這個成員函數不能修改類的數據成員,可以通過對類裏面的數據成員加上mutable修飾,就可以修改該數據成員

class TestConst
{
public:
	TestConst(int i);
	~TestConst();

	int incr() const;
	int decr(); 

private:
	mutable int m_Count;//加mutable修飾
};

TestConst::TestConst(int i) : m_Count(i)
{

}

TestConst::~TestConst()
{

}

int TestConst::incr() const//類的數據成員需要加mutable修飾
{
	return ++m_Count;
}

int TestConst::decr()
{
	return --m_Count;
}


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