一个关于C++的程序的问题 急求!!!!

#include"iostream.h"classMyarray{intlength;int*alist;public:Myarray(intx){length=x;}v... #include "iostream.h"
class Myarray
{int length;int *alist;
public:
Myarray(int x){length=x;}
void set()
{cout<<"input the array:"<<endl;
for(int i=0;i<length;i++)
cin>>*(alist+i);}
void out()
{
for(int i=0;i<length;i++)
cout<<*(alist+i);
}
};
class Averarray:public Myarray
{

int averarray;
int *alist;
int length;
public:
Averarray(int n):Myarray(n){}
void Aver_array()
{int sum=0;
cout<<"input the length:"<<endl;
cin>>length;
for(int i=0;i<length;i++)
{sum=sum+*(alist+i);}
averarray=sum/length;
cout<<"tne averarray is:"<<endl;
cout<<averarray;
};
void main()
{
Averarray a(5);
a.set();
a.out();
a.Aver_array();

}

运行结果总是说有错误 是 declaration terminated incorrectly

这是怎么回事啊 急求!!!
我知道怎么回事了 就是第二个类少一个},但是运行结果怎么不对啊。 我输入的是5 5 5 5 5,运行结果不对。

我把程序的第一个类定义为protected:int length;int *alist;第二个类去掉int length;int *alist;就对了 这是为啥啊??
展开
 我来答
Weberte_0708
2009-12-26 · TA获得超过105个赞
知道答主
回答量:78
采纳率:0%
帮助的人:88万
展开全部
#include "iostream.h"
class Myarray
{
private:
int length;
int *alist;
public:
Myarray(int x)
{
length=x;
alist = new int[length];//你的错误,没有申请空间
}
void set()
{
cout<<"input the array:"<<endl;
for(int i=0;i<length;i++)
cin>>*(alist+i);
}
void out()
{
for(int i=0;i<length;i++)
cout<<*(alist+i)<<"\t";
}
int *getAlist(){
return this->alist;
}
};
class Averarray:public Myarray
{
private:
int averarray;
int *alist;
int length;
public:
Averarray(int n):Myarray(n){
this->alist = getAlist();//赋值语句,将指针值给子类
}
void Aver_array()
{int sum=0;
cout<<endl;
cout<<"input the length:"<<endl;
cin>>length;
for(int i=0;i<length;i++)
{sum=sum+*(alist+i);}
averarray=sum/length;
cout<<"tne averarray is:"<<endl;
cout<<averarray;
}

~Averarray(){
delete[] this->alist;
}
};
void main()
{
Averarray a(5);
a.set();
a.out();
a.Aver_array();

}
T夜蝙蝠T
2009-12-26 · 超过14用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:63.1万
展开全部
对于补充问题的回答:
因为一旦去掉第二个类中的int *alist后,第二各类就会继承第一个类中的alist,也就不需要在第二各类中重新赋值了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a7a9715
2009-12-26 · TA获得超过1466个赞
知道小有建树答主
回答量:1627
采纳率:0%
帮助的人:780万
展开全部
因为class Averarray:public Myarray~~~~~~··Averarray为Myarray的派生类,Averarray继承了Myarray中的数据成员int length;int *alist;。Averarray不需要重新定义int length;int *alist;。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liurui703
2009-12-26
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
void Aver_array()
函数少个 } 大括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式