
一个C++问题,关于class中const型数据的初始化
/*有这样的一个要求改错的题目:*/#include<iostream>usingnamespacestd;classCircle{public:Circle(intrr...
/*有这样的一个要求改错的题目:*/
#include<iostream>
using namespace std;
class Circle
{
public:
Circle(int rr){r=rr;}//---------------error
void Display(){cout<<"Area="<<3.1415*r*r<<endl;}
private:
const int r;//------------------------A
}
void main()
{
Circle c(10);
c.Display();
}
/*
如果把A行const去掉,肯定就没问题了,但题目的要求是只改动error的一行。
*/
class的结尾处有个分号的,没打上来。 展开
#include<iostream>
using namespace std;
class Circle
{
public:
Circle(int rr){r=rr;}//---------------error
void Display(){cout<<"Area="<<3.1415*r*r<<endl;}
private:
const int r;//------------------------A
}
void main()
{
Circle c(10);
c.Display();
}
/*
如果把A行const去掉,肯定就没问题了,但题目的要求是只改动error的一行。
*/
class的结尾处有个分号的,没打上来。 展开
1个回答
展开全部
帮你改好了,const成员的初始化不能再构造函数中,要像我那样初始话
#include<iostream>
using namespace std;
class Circle
{
public:
Circle(int rr):r(rr){}//注意这里
void Display(){cout<<"Area="<<3.1415*r*r<<endl;}
private:
const int r;//------------------------A
};
void main()
{
Circle c(10);
c.Display();
}
#include<iostream>
using namespace std;
class Circle
{
public:
Circle(int rr):r(rr){}//注意这里
void Display(){cout<<"Area="<<3.1415*r*r<<endl;}
private:
const int r;//------------------------A
};
void main()
{
Circle c(10);
c.Display();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询