const 创建的基础类型不能修改; const 创建的引用数据类型,可以修改他的属性进行修改,例如Object.li = 2; 为什么引用数据类型能修改呢? 因为声明一个常量,它确保该变量绑定的内存地址不可变,即变量本身的引用无法重新赋值;但是引用数据的属性能修改,他的引用数据存放到堆内存中,向外界暴露的是一个指针,修改属性,指...
这类情况是编译期间的const,通过实验,这类方法修改const,程序基本不能运行,直接报错。原因是这样的:在这个程序中,sum是一个全局变量,C++编译器不会为其分配空间,而是直接将其保存在符号表中,待要取得const常量地址时,再迫使编译器为其分配空间,所以,当result指向sum,并试图修改其内容时就会出现:在此位置写入时产生...
//const对象中的变量不能被修改,即使const对象中的函数也不能修改该对象中的变量值。 //g++ : error: assignment of data-member ‘Test::y’ in read-only structure //t2.x = 10;//vs2010可以编译通过,但执行不会改变t2.x的值 //cout<<"t2.x="<<t2.x<<endl; //t2.change(2222);//error...
我这么定义没错啊 ! 你是不是没有分号结束?可以用 只是我不知道你要表达这个变量时什么意思!你在定义int的时候已经说明这是个整型了,后面又加一个UNIT是在就没有必要了 感觉画蛇添足了,如果你这个变量用的地方比较多就这样定义一个宏:define UNIT_MAX 1000 ...
但是传递引用类型的参数,如果你修改参数的值,就可能会改变被调用方的逻辑。 尤其是分工合作的项目,在接口上,是无法详细约束变量的内容状态的,这就带来了问题。 ~~~ 所以c++上,是应该强调const的。 这主要是不同语言的设计目标是不同的。 如果c++不强调效率,也可以去掉const,但,那还叫c++吗?在c++代码中使用cons...