求帮忙看看这段C++代码的错误(用虚函数手段实现2种不同方法逆序输出)

#include<iostream>usingnamespacestd;classbasecla{public:basecla(intn0){n=n0;}virtualv... #include<iostream>
using namespace std;
class basecla
{
public:
basecla(int n0){n=n0;}

virtual void reverse();
protected:
int n;
};
class cla1:public basecla
{
public:
cla1(int n0):basecla(n0){};
virtual void reverse();
};
class cla2:public basecla
{
public:
cla2(int n0):basecla(n0){};
virtual void reverse();
};
void func(basecla *p)
{
p->reverse();
cout<<endl;
}
void cla1::reverse()
{
int i,*p;
p=new int[n];
cout<<"Enter the data."<<endl;
for(i=0;i<n;i++)
{
cin>>p[i];
}
for( ;i>=0;i--) cout<<p[i]<<" ";
}
void cla2::reverse()
{
struct item{
int data;
item *next;
};
item *head=NULL,*temp;
int i=0;
temp=new item;
for(i=0;i<n;i++)
{
cin>>temp->data;
temp->next=head;
head=temp;
temp=new item;
}
for(temp=head;temp!=NULL;temp=temp->next)
{
cout<<temp->data<<" ";
}
}
int main()
{
int n;
cout<<"How many data?"<<endl;
cin>>n;
cla1 c1(n);
cla2 c2(n);
cout<<"--------method1---------"<<endl;
func(&c1);
cout<<"--------method2---------"<<endl;
func(&c2);

}
展开
 我来答
passion_wu128
推荐于2016-08-10 · TA获得超过1168个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:565万
展开全部
基类里面的reverse函数没有定义。
可以这样定义成空函数
virtual void reverse(){}
或者这样定义成纯虚函数,不用实现
virtual void reverse() = 0;

还有一处代码错误
for( ;i>=0;i--) cout<<p[i]<<" ";
这里开始循环时i=n
所以应该改成
for(i=n-1; i>=0; i--)
cout<<p[i]<<" ";
上海莘默
2024-04-12 广告
**ODU重载连接器**ODU重载连接器是一种高性能、高密度的连接解决方案,广泛应用于各种工业自动化和通信设备中。它采用先进的设计理念和制造技术,具有优异的电气性能和机械强度,能够满足复杂环境下对数据传输和信号稳定的高要求。同时,ODU重载... 点击进入详情页
本回答由上海莘默提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式