一个关于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;就对了 这是为啥啊?? 展开
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;就对了 这是为啥啊?? 展开
展开全部
#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();
}
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();
}
展开全部
对于补充问题的回答:
因为一旦去掉第二个类中的int *alist后,第二各类就会继承第一个类中的alist,也就不需要在第二各类中重新赋值了。
因为一旦去掉第二个类中的int *alist后,第二各类就会继承第一个类中的alist,也就不需要在第二各类中重新赋值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为class Averarray:public Myarray~~~~~~··Averarray为Myarray的派生类,Averarray继承了Myarray中的数据成员int length;int *alist;。Averarray不需要重新定义int length;int *alist;。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void Aver_array()
函数少个 } 大括号
函数少个 } 大括号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询