多文件编程与虚函数的搭配

问题描述:

(1)创建头文件Container.h,该文件包含抽象基类Container的声明, 该基类含有纯虚函数表面积函数surface()和体积函数volume(),数据成员double a, b, c;

(2)创建头文件Sphere.h,包含#include “Container.h”,声明Container的派生类Sphere;创建源文件Sphere.cpp,给出其表面积函数surface()和体积函数volume()的定义;

(3)创建头文件Cylinder.h,包含#include “Container.h”,声明Container的派生类Cylinder;创建源文件Sphere.cpp,给出其表面积函数surface()和体积函数volume()的定义;

(4)创建头文件Cube.h,包含#include “Container.h”,声明Container的派生类Cube;创建源文件Cube.cpp,给出其表面积函数surface()和体积函数volume()的定义。

(5)创建源文件main.cpp,包含#include “Sphere.h”、#include “Cylinder.h”和#include “Cube.h” ,在主函数中计算几种图形的表面积和体积,并输出结果。

多文件编程要注意需要声明定义两个文件实现要求(这里.h文件实现声明,.c文件进行定义)

这里只给出前面两个后面以此类推(不会的话问评论区):

Container.h文件

//这里是Container.h头文件定义
#ifndef _CONTAINER_H_
#define _CONTAINER_H_
class Container{
	protected:
		double a,b,c;
	public:
		virtual double surface()=0;
		virtual double volume()=0;
};

#endif

Container.c文件

//由于这是基类则不需要定义其成员函数
#include "Container.h"

Sphere.h文件

#ifndef _SPHERE_H_
#define _SPHERE_H_
#include "Container.h"
class Sphere:public Container{
	protected:
		double r;
	public:
		Sphere(double a){
			r=a;
		}
		double surface();
		double volume();
};

#endif

Sphere.c文件

#include "Sphere.h"
#include <iostream>
using namespace std;
double Sphere::surface(){
	cout<<"surface:"<<4*3.14*r*r<<endl;
	return 4*3.14*r*r;
}
double Sphere::volume(){
	cout<<"volume:"<<4*3.14*r*r*r/3<<endl;
	return 4*3.14*r*r*r/3;
}

主函数main.c

#include <iostream>
#include "Container.h"
#include "Sphere.h"

int main() {
	Sphere qiu(1);
	qiu.surface();
	qiu.volume();
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值