C++中修改常量值的方法
来源:互联网 发布:淘宝开店收费吗2016 编辑:程序博客网 时间:2024/04/28 03:19
1.无法对全局常量,静态常量重新赋值,会引发编译错误或者运行时错误
2.对函数内的局部常量可以重新赋值,但是并不会改变值,只是不会报错,所以没什么卵用
3.可以对类中的成员常量进行重新赋值,主要的方法就是通过获取原常量的底层常量指针,使用强制类型转换,将常量指针改变成非常量指针,然后通过非常量指针进行赋值。例子如下
class AClass{private: const int x; int *const array;public: AClass(int n):array(new int[n]),x(n){} void changeConst(int m){ *(int *)&x=m; *(const_cast<int *>(&x))=m; //*(static_cast<int *>(&x))=m;这个是不行的,因为static_cast无法修改底层const,上面两个都行; if(array) delete [] array; *(int **)&array=new int[m]; }}
0 0
- C++中修改常量值的方法
- C++ const常量值的修改
- 强制修改常量值
- Android中颜色常量值
- constants 常量值的使用
- 接口常量值可被修改
- 常量值
- tensorflow 中查看张量值的方法
- js中特殊数值常量值
- maven pom文件中定义常量值
- C语言 在被调函数中改变指针变量值的方法
- 与路由相关的常用度量值
- 从Java到C++——常量值的使用和定义
- 从Java到C++——常量值的定义和基本用法
- c\c++交换两变量值的三种方法
- 获取oracle sql语句中绑定变量值的方法
- 获取oracle sql语句中绑定变量值的方法
- 查询Oracle sql语句中绑定变量值的方法
- JAVA 对象序列化(二)——Externalizable
- ibatis遍历数组出错
- CSE6331 Algorithms Syllabus AU16
- 9月22号作业总结
- Android开发之对线程池的理解
- C++中修改常量值的方法
- 专业理解-20160922
- 算法---冒泡排序
- 十进制的研究(二)
- Lecture 1: Introduction, complexity of algorithms, asymptotic growth of functions.
- The connection to adb is down, and a severe error has occured.
- Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
- 那年,我在笃行湖上
- poj 1426 Find The Multiple(搜索)