IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 纯虚函数的应用_C++ -> 正文阅读

[C++知识库]纯虚函数的应用_C++

纯虚函数的应用_C++

// 
题目描述
Shape是一个父类,他的子类有:
三角形类:Triangle
矩形类:Rectangle
圆形类:Circle


要求如下:
第一:Shape 类中定义纯虚函数 show 和 area;
第二:area 用途:求解图形面积。 
show 用途:打印信息。
第三:要求根据输出完善 核心代码实现,要求实现运行时多态。
第四:main() 函数已经给出,需要写出剩余部分的实现。


int main()
{
    Shape *s;
    Circle mycircle(20);
    Rectangle myrect(3,4);
    Triangle mytriangle(6,8,10);

    s=&mytriangle;//动态多态
    s->show();
    cout<<"Triangle:"<<s->area()<<endl;


    s=&myrect;//动态多态
    s->show();
    cout<<"Rectangle Area:"<<s->area()<<endl;


    mycircle.show();//静态多态
    cout<<"Circle Area:"<<mycircle.area()<<endl;

    return 0;
}




输入
无
输出
a=6, b=8, c=10
Triangle:24
length=3, width=4
Rectangle Area:12
radius=20
Circle Area:1256.64

样例输入 Copy
无
样例输出 Copy
a=6, b=8, c=10
Triangle:24
length=3, width=4
Rectangle Area:12
radius=20
Circle Area:1256.64
// 
#include<iostream>
#include<string>
using namespace std;
class Shape {
public:
	virtual void show() = 0;
	virtual int area() = 0;
};
class Triangle:public Shape{
public:
	Triangle(int a, int b, int c) {
		b1 = a;
		b2 = b;
		b3 = c;
	}
	void show() {
		cout << "a=" << b1 << ", b=" << b2 << ", c=" << b3 << endl;
	}
	int area() {
		//cout << (b1 * b2) / 2 << endl;
		return (b1 * b2) / 2;
	}
	int b1, b2, b3;
};
class Rectangle :public Shape {
public:
	Rectangle(int a, int b) {
		b1 = a;
		b2 = b;
	}
	void show() {
		cout << "length=" << b1 << ", width=" << b2 << endl;
	}
	int area() {
		//cout << (b1 * b2) << endl;
		return (b1 * b2);
	}
	int b1, b2;
};
class Circle{
public:
	Circle(int a) {
		b1 = a;
	}
	void show() {
		cout << "radius=" << b1 << endl;
	}
	double  area() {
		//cout  << b1 * b1 * 3.14 << endl;
		return  b1 * b1 * 3.14159;
	}
	int b1;
};
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 11:51:56  更:2021-12-05 11:54:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:04:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码