第六周C++上机报告(项目1--改错)

来源:互联网 发布:上海水利公司 知乎 编辑:程序博客网 时间:2024/06/05 07:17

此为错误代码:

#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()<<endl;return 0;}


const对象,对非const的普通成员函数不允许引用也不允许改变值;

 

此为第一种改法:

#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);cout<<c.getX()<<endl;return 0;}


只要将“const C c(5);”的const去掉,变成非const的普通成员函数。非const的普通成员函数,可以引用也可以改变非const普通成员函数的值。

 

此为第二种改法:

#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;}};int main(){  const C c(5);cout<<c.getX()<<endl;return 0;}


改为“int getX()const{return x;}”,const对象可以引用const成员函数。

 

运行结果:

 

原创粉丝点击