前言
🎬本文章是 【C++笔记】 专栏的文章,主要是C++黑马的笔记、自己的实验与课设
🔗C++笔记 传送门
一、要求
先建立一个Point(点)类,包含数据成员x,y(坐标点)。以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高)
要求:
- 重载运算符“<<”,使之能输出一个点对象
- 在程序中使用虚函数和抽象类。类的层次结构的顶层是抽象基类Shape(形状)。Point(点)、Circle(圆)、Cylinder(圆柱体)都是Shape类的直接派生类和间接派生类
二、分析
由项目要求分析可知,Shape做基类,且void show()做纯虚构函数,之后Point类、Circle类、Cylinder类通过指针分别调用自己的show()函数
三、代码
💻提示:所有实验源码已在github整理
#include<iostream>
using namespace std;
//形状
class Shape
{
public:
virtual void show() = 0;
};
//点类
class Point:public Shape
{
public:
Point(){
};
Point(double x, doub