鱼C论坛

 找回密码
 立即注册
查看: 2100|回复: 2

无比跪求大神帮该下C++的类数组程序!要疯了 急死了

[复制链接]
发表于 2014-5-3 12:13:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


求大神帮忙改错,实在无力了!!!(红字 就是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 sum  is"<<sum(xarray,size)<<endl;
         }

int main()
{
   const int size=10;
   X xarray[size];                                 //                     error C2512: 'X' : no appropriate default constructor available
   for(int i=0;i<size;i++)
   {
   array.setr(i+1);
   }
   print(xarray,size);
   return 0;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-3 12:32:17 | 显示全部楼层

回帖奖励 +1 鱼币

那个错误的意思是类X没有默认的构造函数,你一旦自己定义了构造函数,系统就不会调用默认的构造函数了,你在实例化该对象时后面无参数,而你自己却没有定义无参数的构造函数,所以就会出错。
改法1:加个无参数的构造函数X(){}
改法2: X(double r1=1)//设置默认值
          {
                  r=r1;      
          }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-3 14:24:02 | 显示全部楼层

无比感谢 谢啦谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 09:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表