首页 > 代码库 > c++ ,const对象中的变量不能被修改

c++ ,const对象中的变量不能被修改

const对象中的变量不能被修改,即使const对象中的函数也不能修改该对象中的变量值

 

#include <iostream>using namespace std;//-----------------------------------------------class Test {public:    int x;    Test();    void change(int a);};Test::Test() {    this->x = 23;}void Test::change(int a ){    this->x=a;}//-----------------------------------------------void f1() {    Test t1;    t1.x = 111;    cout<<"t1.x="<<t1.x<<endl;    t1.change(1111);    cout<<"t1.x="<<t1.x<<endl;    const Test t2;    cout<<"t2.x="<<t2.x<<endl;        //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 C2662: “Test::change”: 不能将“this”指针从“const Test”转换为“Test &”    }int main() {    f1();    while(1);    return 0;}

 

c++ ,const对象中的变量不能被修改