一道简单C++问题,急!急!急!

#include<iostream>usingnamespacestd;classShape//定义抽象类{public:virtualdoubleArea()=0;};... #include<iostream>
using namespace std;
class Shape //定义抽象类
{
public:
virtual double Area()=0;
};
class Triangle:public Shape //派生三角形类
{
public:
Triangle(double h,double w){H=h;W=w;}
double Area() const {return H*W*0.5;}
private:
double H,W;
};
class Rectangle:public Shape //派生矩形类
{
public:
Rectangle(double h,double w){H=h;W=w;}
double Area() const {return H*W;}
private:
double H,W;
};
void fun(Shape *pt)
{
pt->Area();
}
void main()
{
Shape *p;
Triangle san(5,6);
Rectangle ju(6,8);
p=&san;
fun(p);
p=&ju;
fun(p);
}
帮我看看这个题目怎么改?前提是不能改抽象类
请写出改正的后的答案,谢谢
展开
 我来答
Emaer
2008-01-15 · TA获得超过129个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:248万
展开全部
// 问题出在纯虚函数重载后函数必须一模一样
#include<iostream>
using namespace std;
class Shape //定义抽象类
{
public:
virtual double Area()=0;
};

class Triangle:public Shape //派生三角形类
{
public:
Triangle(double h,double w){H=h;W=w;}
double Area() {return H*W*0.5;}
private:
double H,W;
};

class Rectangle:public Shape //派生矩形类
{
public:
Rectangle(double h,double w){H=h;W=w;}
double Area() {return H*W;}
private:
double H,W;
};

void fun(Shape *pt)
{
pt->Area();
}

void main()
{
Shape *p;
Triangle san(5,6);
Rectangle ju(6,8);
p=&san;
fun(p);
p=&ju;
fun(p);
}
X星翌凌
2008-01-15
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
有错误吗?没有看出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式