如何将下面这个虚函数的数据封装代码改成运行结果为圆的面积(没显示的最后一行为},之后就没了)?

这里有三个类,你想把哪个改为圆类啊?

B的void show()前面也得加virtual,否则c的show就没有多态效果了

class shape
{
public:
	shape() {}
	void  area() {}
};

class square : public shape
{
protected:
	int n;
public:
	square() {}
	square(int a) { n = a; }
	virtual void area() { printf("正方形面积为:%d\n",n*n); }
};

class circle : public square
{
public:
	circle() {}
	circle(int r) { n = r; }
	void area() { printf("圆面积为:%.2f", 3.14159*n*n); }
};

void main()
{
	shape *s;
	square sq;
	circle c;
	s = &sq;
	s->area();
	s = &c;
	s->area();
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632