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; }
时间: 2024-10-27 14:01:24