C++编程练习:抽象类——编写一个程序,计算三角形、正方形的面积,抽象出一个基类base。

例、编写一个程序,要求计算三角形、正方形的面积,抽象出一个基类base,在其中说明一个虚函数display( )用来展示其参数且求出面积。

代码如下:

头文件headfile.h:

#pragma once								//只运行一次头文件
#include <iostream>
using namespace std;
class base
{
public:
	virtual void display() = 0;			//成员函数dispaly()声明为纯虚函数
};

class Square : virtual public base     //派生类Square正方形
{
protected:
	float x;
public:
	float width;
	Square()
	{
	}
	Square(float a)
	{
		x = a;
	}
	virtual float getSquare()
	{
		return (x * x);
	}
	virtual void display()
	{
		cout << "正方形的边长为:" << x << endl;
		cout << "正方形的面积为:" << getSquare() << endl;
	}
};

class Rectangle : virtual public base    //派生类Rectangle三角形
{
protected:
	int a, h;
public:
	Rectangle()
	{
	}
	Rectangle(int a1, int h1)
	{
		a = a1;
		h = h1;
	}
	virtual float getRectangle()
	{
		return (a * h) / 2.0;
	}
	virtual void display()
	{
		cout << "三角形的底和高为:" << a << endl << h << endl;
		cout << "三角形的面积为:" << getRectangle() << endl;
	}
};

源文件源.cpp:

#include <iostream>
#include "headfile.h"
using namespace std;
int main()
{
	base* p;
	double a = 0, a1 = 0, h1 = 0;
	cout << "请输入正方形的边长:" << endl;
	cin >> a;
	Square A(a);
	p = &A;
	p->display();
	cout << "" << endl;
	cout << "请输入三角形的底和高:" << endl;
	cin >> a1 >> h1;
	Rectangle B(a1, h1);
	p = &B;
	p->display();
	system("pause");
	return 0;
}

测试:
在这里插入图片描述

结语

以上就是本次C++的全部内容,感谢您的阅读和支持,若有表述或者代码中的不当之处,望指出!您的指出和建议能给作者带来很大的动力!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风(●•σ )

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值