}
输出结果:
修改后的程序:
因为const Student stud(101,78.5);定义stud为常对象,不能修改常对象的数据成员,故change函数不能使用;
C++可以利用mutable声明想修改的数据成员,附上再次修改程序。
#include<iostream> using namespace std; class Student { public: Student(int n,float s):num(n),score(s){} //void change(int n,float s){num=n;score=s;} void display()const{cout<<num<<" "<<score<<endl;} private: int num; float score; }; int main() { const Student stud(101,78.5); stud.display(); //stud.change(101,80.5); stud.display(); return 0; }
再次修改:
#include<iostream> using namespace std; class Student { public: Student(int n,float s):num(n),score(s){} void change(int n,float s)const{score=s;} void display()const{cout<<num<<" "<<score<<endl;} private: mutable int num; mutable float score; }; int main() { const Student stud(101,78.5); stud.display(); stud.change(101,80.5); stud.display(); return 0; }
