15201315716 发表于 2014-5-3 12:13:46

无比跪求大神帮该下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;
}


未闻丶花名 发表于 2014-5-3 12:32:17

那个错误的意思是类X没有默认的构造函数,你一旦自己定义了构造函数,系统就不会调用默认的构造函数了,你在实例化该对象时后面无参数,而你自己却没有定义无参数的构造函数,所以就会出错。
改法1:加个无参数的构造函数X(){}
改法2: X(double r1=1)//设置默认值
          {
                  r=r1;      
          }

15201315716 发表于 2014-5-3 14:24:02

未闻丶花名 发表于 2014-5-3 12:32 static/image/common/back.gif
那个错误的意思是类X没有默认的构造函数,你一旦自己定义了构造函数,系统就不会调用默认的构造函数了,你在 ...

无比感谢 谢啦谢啦
页: [1]
查看完整版本: 无比跪求大神帮该下C++的类数组程序!要疯了 急死了