这里有三个类,你想把哪个改为圆类啊?
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