1、首先定义基类CLow,然后实现对应代码
2、然后定义子类CHigh, 继承CLow, 然后实现对应代码
3、完成上面的基础代码之后,主函数输入以下测试代码,定义一个const的指针,然后通过const_cast进行转换,删除const标签
4、修改主函数的测试代码,通过const_cast将const High * 转换为const Low *
5、点击运行调试,编译报错,无法转换,说明const_cast不能进行不同类型的转换,只能改变const或者volatile特征
6、我们孀晏弁钾也可以通过采用通用的方法来进行强制类型转换,但是这样有可能会改变类型,因为能够将const CHigh *改为CLow *而没有编译报错,因此安全性不够
7、const_cast可以去掉const标签,但是不一定能过改变变量的值,下面举个例子进行说明,首先定义如下函数,转换const int *的类型为 int * , 然后对值进行修改
8、主函数添加如下的测试代码,注意定义了两个变量一个示int, 另一个是const int
9、最后运行的结果如下所示,从中可以看出,iNum1的值改变,而iNum2的值没有改变,所以仅当指向的值不是const时,才能对值进行改变