谁能帮我做下着个C++题 20

声明一个基类shapes,其中含有protected类型的数据成员x、y和z以及s(数据类型为char),x和y代表矩形的长和宽,z代表正三角形的边长,s表示打印符号,成... 声明一个基类shapes,其中含有protected类型的数据成员x、y和z以及s(数据类型为char), x和y代表矩形的长和宽,z代表正三角形的边长,s表示打印符号,成员函数setrectangle()用来设置数据成员x、y和s的初值,函数settriangle ()用来设置数据成员z和s的初值,定义show()为纯虚函数。
声明类rectangle及triangle类为shapes类的派生类,成员函数函数show()分别用来显示矩形和正三角形的形状。

编写main()函数实现如下功能:
定义指向基类的指针数组p[2]
分别定义一个矩形对象和三角形对象
p[0]指向矩形对象,调用setrectangle()函数,设置矩形的x、y和s的值,其中x的值为4,y的值为6,s的值由用户输入,调用show()显示矩形
p[1]指向三角形对象,调用settriangle ()函数,设置正三角形的边长的z和s的值,其中r的值为5,s的值由用户输入,调用show()显示正三角形
程序运行结果如下:

输入打印符号为“$”

输入打印符号为“#”
展开
 我来答
百度网友49ccb92
2007-06-19 · 超过34用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:0
展开全部
#include "stdafx.h"
#include <iostream>

using namespace std;

class Shape
{
public:
void setrectangle(double newX, double newY, char newS)
{
x = newX;
y = newY;
s = newS;
}
void settriangle(double newZ, char newS)
{
z = newZ;
s = newS;
}
virtual void show() const = 0;
protected:
double x;
double y;
double z;
char s;
};

class Rectangle : public Shape
{
public:
void show() const
{
cout << s << endl;
}
};

class Triangle : public Shape
{
public:
void show() const
{
cout << s<< endl;
}
};

int main()
{
char s;
Shape* pArr[2];

pArr[0] = new Rectangle;
pArr[1] = new Triangle;

cout << "Input a letter for rectangle: ";
cin >> s;

pArr[0]->setrectangle(4,6,s);
pArr[0]->show();

cout << "Input a letter for triangle: ";
cin >> s;

pArr[1]->settriangle(5,s);
pArr[1]->show();

delete pArr[0];
delete pArr[1];

return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式