虚基类函数
来源:互联网 发布:js双引号转义字符 编辑:程序博客网 时间:2024/06/16 11:57
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: object.cpp* 作者:王飞* 完成日期:2013 年5月 31日* 版本号: v1.0* 输入描述:无* 问题描述:练习虚函数。* 程序输出:如下*/#include <iostream>using namespace std;#define PI 3.1415926//声明抽象基类Shapeclass Shape{public: virtual double area(){return 0;}};class Circle:public Shape{public: Circle(double r0):r(r0){}; double area(); //面积private: double r;};double Circle::area(){ return PI*r*r;}class Rectangle:public Shape{ public: Rectangle(double c0,double k0):c(c0),k(k0){}; double area();private: double c; double k;};double Rectangle::area(){ return c*k;}class Triangle:public Shape{public: Triangle(double c0,double k0):c(c0),k(k0) {}; double area();private: double c; double k;};double Triangle::area(){ return 0.5*c*k; //返回三角形的面积}int main(){ Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,参数为矩形长、宽 Triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle类对象t1,t2,参数为三角形底边长与高 Shape *pt[6]= {&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象 double areas=0.0; //areas为总面积 for(int i=0; i<6; i++) { areas=areas + pt[i]->area(); } cout<<"totol of all areas="<<areas<<endl; //输出总面积 return 0;}
输出结果:
心得体会:
对于虚基类函数的使用其中遇到的问题就是const的问题,进一步探讨。
- 虚基类函数
- 虚基类、虚函数与纯虚函数
- 虚函数 纯虚函数 虚基类说明
- 虚基类 虚函数 纯虚函数讲解
- 虚基类、虚函数以及纯虚函数
- 虚基类、虚函数与纯虚函数
- 虚函数、虚基类、纯虚函数、接口
- 虚函数,纯虚函数,虚基类
- 虚基类、虚函数与纯虚函数
- 虚函数 纯虚函数 虚基类说明
- 虚基类、虚函数与纯虚函数
- 虚基类、虚函数与纯虚函数
- 《虚基类,虚函数,纯虚函数》
- C++虚函数、纯虚函数、虚基类
- 虚基类 虚函数 纯虚函数
- 虚函数、纯虚函数、虚基类
- 虚函数和虚基类
- C++虚基类构造函数
- Ashmem 内存分析
- OpenCV图像的轮廓的匹配
- 面向对象--PHP中类的继承和构造函数
- 拿破仑·波拿巴
- EJB3.0 查询语言JPQL用法
- 虚基类函数
- PHP 魔术引号详解讲解
- 缓存缺失一段代码引发的问题
- 使用 ReplicationConnection 连接 Master/Slave 实现负载均衡
- 几种简单排序算法
- 图片转换二进制流-二进制流转换图片保存(winform、Wince程序通用)
- VB 循环播放视频文件
- ohmygod
- 三层架构之初识庐山真面目