/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: object.cpp * 作者:纪子龙 * 完成日期: 2013年4 月 4 日 * 版本号: v1.0 * 输入描述:无 * 问题描述:无 * 程序输出:无 */ #include<iostream> #include<stdlib.h> using namespace std; class C { private: int x; public: C(int x){this->x = x;} int getX() {return x;} }; int main() { const C c(5); cout<<c.getX(); return 0; } //错误:非const对象的数据成员只能由从const成员函数引用不能改变非const成员函数既不可引用有不可改变; 具体修改方案: 1. #include<iostream> #include<stdlib.h> using namespace std; class C { private: int x; public: C(int x){this->x = x;} int getX() {return x;} }; int main() { C c(5);//将c定义为非const对象 cout<<c.getX(); return 0; } 2. #include<iostream> #include<stdlib.h> using namespace std; class C { private: int x; public: C(int x){this->x = x;} int getX() const{return x;}//将getX定义为const成员函数 }; int main() { const C c(5); cout<<c.getX(); return 0; } 总结: 本人更偏向于第二种方式保证了对象数据成员的封闭性