无比跪求大神帮该下C++的类数组程序!要疯了 急死了
求大神帮忙改错,实在无力了!!!(红字 就是VC 调试出错点)
通过类数组,实现10个圆面积求算以及最终所有面积求和的程序! 求改!!感激不尽!!!!
#include<iostream>
using namespace std;
class X
{
public:
X(double r1)
{
r=r1;
}
double getr()
{
return r;
}
void setr(double r1)
{
r=(r1>=0)?r1:0;
}
double getarea()
{
return r*r*3.14159;
}
private:
double r;
};
double sum(X xarray[],int size)
{
double sum=0;
for(int i=0;i<size;i++)
sum=sum+xarray.getarea();
return sum;
}
void print(X xarray[],int size)
{
for(int i=0;i<size;i++)
cout<<xarray.getr()<<" "<<xarray.getarea()<<endl;
cout<<"the sumis"<<sum(xarray,size)<<endl;
}
int main()
{
const int size=10;
X xarray; // error C2512: 'X' : no appropriate default constructor available
for(int i=0;i<size;i++)
{
array.setr(i+1);
}
print(xarray,size);
return 0;
}
那个错误的意思是类X没有默认的构造函数,你一旦自己定义了构造函数,系统就不会调用默认的构造函数了,你在实例化该对象时后面无参数,而你自己却没有定义无参数的构造函数,所以就会出错。
改法1:加个无参数的构造函数X(){}
改法2: X(double r1=1)//设置默认值
{
r=r1;
} 未闻丶花名 发表于 2014-5-3 12:32 static/image/common/back.gif
那个错误的意思是类X没有默认的构造函数,你一旦自己定义了构造函数,系统就不会调用默认的构造函数了,你在 ...
无比感谢 谢啦谢啦
页:
[1]