C++中的虚函数的理解和使用
来源:互联网 发布:eclipse的java程序编码 编辑:程序博客网 时间:2024/06/06 05:41
关于C++中的纯虚函数,使用方法个人理解就像是java中的interface一样,使用规则为 1.在基类中定义虚函数。2.在派生类中通过函数覆盖来定义同名的函数。3.定义基类的指针并调用该函数。
#include "stdafx.h"#include<iostream>using namespace std;const double PI = 3.1415926;class Container{protected: double radius;public: Container(double r);//抽象类Container的构造函数 virtual double surface_area() = 0;//纯虚函数surface_area 表面积 virtual double volume() = 0;//纯虚函数volume 体积};Container::Container(double r){ radius = r;}class Sphere:public Container{public: Sphere(double); double surface_area(); double volume();};Sphere::Sphere(double r):Container(r){ radius = r;}double Sphere::surface_area(){ return 4 * PI*radius*radius;}double Sphere::volume(){ return (4 / 3)*PI*radius*radius*radius;}class Cylinder :public Container{public: Cylinder(double,double); double surface_area(); double volume();private: double height;};Cylinder::Cylinder(double r,double h) :Container(r){ height = h; radius = r;}double Cylinder::surface_area(){ return PI*radius*radius * 2 + 2 * PI*radius*height;}double Cylinder::volume(){ return PI*radius*radius*height;}class Cube :public Container{public: Cube(double); double surface_area(); double volume();};Cube::Cube(double r) :Container(r){ radius = r;}double Cube::surface_area(){ return 6 * radius;}double Cube::volume(){ return radius*radius*radius;}int main(){ Container *s = new Sphere(5.0); Container *c = new Cylinder(5.0,6.0); Container *cube = new Cube(6.0); cout << "计算边长为6.0的正方体、半径为5.0的球体,以及半径为5.0和高为6.0的圆柱体的表面积和体积." << endl; cout << "球体表面积为: " << s->surface_area()<<endl; cout << "球体体积为: " << s->volume()<<endl; cout << "圆柱体表面积为: " << c->surface_area() << endl; cout << "圆柱体体积为: " << c->volume() << endl; cout << "正方体表面积为: " << cube->surface_area() << endl; cout << "正方体体积为: " << cube->volume() << endl; system("pause"); return 0;}
阅读全文
0 0
- C++中的虚函数的理解和使用
- 【末世旅行之C++】C++中的虚函数和纯虚函数的理解
- 深入理解C语言中的指向函数的指针和返回指针的函数!
- C/C++中的函数中的void和void* 理解
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- C++:抽象基类和纯虚函数的理解
- C语言字符串函数和C++string类中的部分函数的使用
- C++多态及虚函数的理解和使用
- javascript函数apply的使用和理解
- Generator函数的理解和使用
- thinkphp中的session的使用和理解!
- OpenGl中的glViewport()函数和glOrtho()函数的理解
- C语言中的关键字-typedef之理解和使用
- 深入理解C语言中的指向函数的指针!
- C中的getchar()函数的使用总结
- C中的getchar()函数的使用总结
- C中的getchar()函数的使用总结
- 对consumer instance(消费者实例)的思考
- ZooKeeper 基础知识、部署和应用程序
- 对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决
- Friday the Thirteenth-section1.1
- 《Oracle Database 11gR2性能调整与优化》第一节
- C++中的虚函数的理解和使用
- MQ学习(一)--- JMS了解
- node.js 使用域账号登陆电脑 同一域 可以访问调试项目
- query.list()和query.iterate()区别
- AndroidManifest.xml点点滴滴
- 从输入网址到网页完整展现到底发生了什么?
- iOS跳转系统设置方法支持iOS7~iOS10+
- Mysql数据库的主从同步配置
- SDR