const_cast 列子

#include <iostream>

int main(int argc, char **argv)
{
		const int* pA = new int(3);
		int& iB = const_cast<int&>(*pA); //pA的值可以改变
		int* pC = const_cast<int*>(pA);
		iB = 5;
		*pC = 6;
		std::cout << "a=" << *pA << std::endl;
		std::cout << "b=" << iB << std::endl;
		std::cout << "c=" << *pC << std::endl;
		std::cout << "pA=" << pA << std::endl;
		std::cout << "pB=" << &iB << std::endl;
		std::cout << "pC=" << pC << std::endl;
		delete pA;

		std::cout << "
Comparison:
"  << std::endl;

		const int iA= 789 ;
		iB = const_cast<int&>(iA);//另外申请一块空间,副本
		pC = const_cast<int*>(&iA);
		iB = 987;
		*pC = 999;
		std::cout << "a=" << iA << std::endl;
		std::cout << "b=" << iB << std::endl;
		std::cout << "c=" << *pC << std::endl;
		std::cout << "pA=" << &iA << std::endl;
		std::cout << "pB=" << &iB << std::endl;
		std::cout << "pC=" << pC << std::endl;

		return 0;
}
原文地址:https://www.cnblogs.com/forgood/p/3405256.html