下面的程序存在编译异常。有两种方法可以修改,请给出两种修改方案,多谢

下面的程序存在编译错误。有两种方法可以修改,请给出两种修改方案,谢谢。
#include<iostream>
using namespace std;
class C
{
private:
int x;
public:
C(int x){this->x = x;}
int getx(){return x;}
};
void main()
{
const C c(5);
cout<<c.getx();
system("pause");
}

------解决方案--------------------
1.去掉const C c(5)中的const
2.int getx()const
{return x;}
------解决方案--------------------
删除 cout<<c.getx();
------解决方案--------------------
用自己定义的类来定义对象时,如果定义的对象是非const对象,那么可以调用该类的非const成员函数,也可以调用const成员函数,
如果定义的对象是const对象,那么只能调用该类的const成员函数

你的代码修改如下:
1. 去掉 const C c(5);定义对象c的const
2. 给int getx()成员函数加const修饰,修改为:int getx()const{return x;}
------解决方案--------------------
补充一下:构造、析构函数一定不能为const,const对象唯一可以调用的非const成员函数是 构造、析构函数

探讨

用自己定义的类来定义对象时,如果定义的对象是非const对象,那么可以调用该类的非const成员函数,也可以调用const成员函数,
如果定义的对象是const对象,那么只能调用该类的const成员函数

你的代码修改如下:
1. 去掉 const C c(5);定义对象c的const
2. 给int getx()成员函数加const修饰,修改为:int getx()const{ret……

------解决方案--------------------
探讨
用自己定义的类来定义对象时,如果定义的对象是非const对象,那么可以调用该类的非const成员函数,也可以调用const成员函数,
如果定义的对象是const对象,那么只能调用该类的const成员函数

你的代码修改如下:
1. 去掉 const C c(5);定义对象c的const
2. 给int getx()成员函数加const修饰,修改为:int getx()const{retu……

------解决方案--------------------
哎,我等了一下下,上面就给出答案了