C++ 補充 & C++ 11 - C++ const_cast用法詳解

const_cast用法詳解

去const屬性。(僅針對於指針和引用)

demo 代碼(一)

#include <iostream>

using namespace std;

void demo(const char* p)
{
	/* 對指針去掉 const char *p */
	char* p1 = const_cast<char*>(p);
	p1[0] = 'A';

	/* 直接去掉 const 修改 */
	const_cast<char*>(p)[0] = 'A';
	p1[0] = 'A';

	cout << p << endl;
}

void demo(const int p)
{
	int q = p;
	//const_cast<int>(p) = 888; /* NO! 不能對非指針和引用進行 const 轉換 */
	cout << p << endl;
}

int main(void)
{
	/* 字符串數組 */
	char p[] = "12345678";
	demo(p); /* 合情合理 */

	/* 常量字符串不能去掉 const 修改 */
	/* 警告: 在去掉常量限定之前, 保證指針指向的內存能夠修改, 不能修改則會引起異常 */
	const char* cp = "987654321";
	demo(cp);

	system("pause");
	return 0;
}

結語:

時間: 2020-07-02

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