C++多态基础性练习
来源:互联网 发布:机械键盘配色软件 编辑:程序博客网 时间:2024/04/29 19:41
/*******************************************/
/*动态多态、虚函数
要求:
1.定义Shape类,成员函数:calcArea(),构造函数、析构函数
2.定义Rec类,成员函数:calArea(),构造函数、析构函数
数据成员:m_dWidth,m_dHeight
3.定义Circle类,成员函数:calArea(),构造函数、析构函数
数据成员:m_dR
*/
/******************************************/
思考:
1.不加同名函数前不加virtual关键字
Shape*shape1 = new Rect(3,5);
Shape *shape2 = new Circle(5);
shape1->calcArea();
shape2->calcArea();
运算结果:调用计算面积函数时,均调用的是父类的计算函数
2.加上virtauala关键字后,调用子类计算函数
代码:
//头文件
#include<iostream>#include<stdlib.h>#include<string>using namespace std;class Shape{public: Shape(); ~Shape(); double calcArea();};class Circle:public Shape{public: Circle(double r); ~Circle(); double calcArea();protected: double m_dR;};class Rect :public Shape{ public: Rect(double width,double height); ~Rect(); double calcArea(); protected: double m_dWidth; double m_dHeight;};
//定义部分:
#include"Mult.h"Shape::Shape(){ cout << "Shape()" << endl;}Shape::~Shape(){ cout << "~Shape()" << endl;}double Shape::calcArea(){ cout << " Shape->calcArea()" << endl; return 0;}Circle::Circle(double r){ m_dR = r; cout << "Circle()" << endl;}Circle::~Circle(){ cout << "~Circle()" << endl;}double Circle::calcArea(){ cout << "Circle->calcArea()" << endl; return 3.14*m_dR*m_dR;}Rect::Rect(double width, double height){ m_dWidth = width; m_dHeight = height; cout << "Rect()" << endl;}Rect::~Rect(){ cout << "~Rect()" << endl;}double Rect::calcArea(){ cout << "Rect->calcArea()" << endl; return m_dWidth*m_dHeight;}
//测试部分
#include"Mult.h"int main(void){ Shape*shape1 = new Rect(3,5); Shape *shape2 = new Circle(5); shape1->calcArea(); shape2->calcArea(); delete shape1; shape1 = NULL; delete shape2; shape2 = NULL; system("pause"); return 0;}
运算结果:
0 0
- C++多态基础性练习
- C++运算符重载基础性练习
- C的100个基础性知识
- C++,多态的实现,语法练习
- C练习
- C练习
- C 练习
- c练习
- C练习
- C练习
- c 练习
- 一卡多号基础性问题解答
- 一些基础性的问题
- JavaScript基础性知识总结
- Hibernate基础性学习
- 【c基础练习】文件练习
- 增强记忆的基础性方法
- C++那些基础性的东西
- 真机调试错误:The executable was signed with invalid entitlements.
- 如何免费看各大网站VIP电影?
- PorterDuffXfermode:图形混合模式
- Windows7 设置pip 镜像 Pip Warning:–trusted-host 问题解决方案
- 中文乱码问题及tomcat设置编码为utf-8
- C++多态基础性练习
- 【连载】研究EasyUI系统—Panel组件(方法和事件)
- 上传ipa出现:生成的 API 分析文件太大。我们无法在交付前验证您的 API 使用信息
- Android开发之 gridview的Adapter
- powerdesigner 字段信息设置
- 数据库事务隔离性
- 从 Hello World 说程序运行机制
- Hibernate基础框架解析与配置
- HTML5 WebSocket使用详解