声明一个形状(Shape)基类,具有size、position、color等成员变量,move、draw等成员函数,由此派生出(Rectangle)类、三角形(Triangle)类和圆(Circle)类,将其中move、draw等成员函数声明为虚函数;
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 14:44:55
![声明一个形状(Shape)基类,具有size、position、color等成员变量,move、draw等成员函数,由此派生出(Rectangle)类、三角形(Triangle)类和圆(Circle)类,将其中move、draw等成员函数声明为虚函数;](/uploads/image/z/12870430-70-0.jpg?t=%E5%A3%B0%E6%98%8E%E4%B8%80%E4%B8%AA%E5%BD%A2%E7%8A%B6%EF%BC%88Shape%EF%BC%89%E5%9F%BA%E7%B1%BB%2C%E5%85%B7%E6%9C%89size%E3%80%81position%E3%80%81color%E7%AD%89%E6%88%90%E5%91%98%E5%8F%98%E9%87%8F%2Cmove%E3%80%81draw%E7%AD%89%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0%2C%E7%94%B1%E6%AD%A4%E6%B4%BE%E7%94%9F%E5%87%BA%EF%BC%88Rectangle%EF%BC%89%E7%B1%BB%E3%80%81%E4%B8%89%E8%A7%92%E5%BD%A2%EF%BC%88Triangle%EF%BC%89%E7%B1%BB%E5%92%8C%E5%9C%86%EF%BC%88Circle%EF%BC%89%E7%B1%BB%2C%E5%B0%86%E5%85%B6%E4%B8%ADmove%E3%80%81draw%E7%AD%89%E6%88%90%E5%91%98%E5%87%BD%E6%95%B0%E5%A3%B0%E6%98%8E%E4%B8%BA%E8%99%9A%E5%87%BD%E6%95%B0%EF%BC%9B)
声明一个形状(Shape)基类,具有size、position、color等成员变量,move、draw等成员函数,由此派生出(Rectangle)类、三角形(Triangle)类和圆(Circle)类,将其中move、draw等成员函数声明为虚函数;
声明一个形状(Shape)基类,具有size、position、color等成员变量,move、draw等成员函数,由此派生出(Rectangle)类、三角形(Triangle)类和圆(Circle)类,将其中move、draw等成员函数声明为虚函数;
在主函数中用抽象基类指针调用move、draw;
声明一个形状(Shape)基类,具有size、position、color等成员变量,move、draw等成员函数,由此派生出(Rectangle)类、三角形(Triangle)类和圆(Circle)类,将其中move、draw等成员函数声明为虚函数;
#include
using namespace std;
class Shape
{
public:
int size;
int position;
char color;
Shape(int shapeSize = 1,int shapePosition = 0,char shapeColor = '*') {
size = shapeSize;
position = shapePosition;
color = shapeColor;
}
virtual void move(int x){};
virtual void draw(){};
};
class Rectangle:public Shape
{
public:
Rectangle(int shapeSize = 1,int shapePosition = 0,char shapeColor = '-'):
Shape(shapeSize,shapePosition,shapeColor) {}
void move(int x) { position = 2*x; }
void draw(){
int i;
for(i = 0; i < position; i++) cout