13.1 对虚函数、多态性和抽象类的理解
来源:互联网 发布:我的世界网络联机 编辑:程序博客网 时间:2024/05/18 02:06
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:第十三周 任务一
* 作 者:杨森
* 完成日期: 2012 年 05 月 15 日
* 版 本 号: V1.0
源程序 1:
#include <iostream> using namespace std;class Vehicle {public: void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数}; class Car: public Vehicle {public:#include <iostream> using namespace std;class Vehicle {public: virtual void run() const =0; //(2) run()为虚函数}; class Car: public Vehicle {public: void run() const {cout << "run a car. "<<endl; } }; class Airplane: public Vehicle {public: void run() const {cout << "run a airplane. "<<endl;} }; int main() {cout<<"(a) 直接用对象访问成员函数: "<<endl;//Vehicle v;编译器在此行提示错误!//v.run();编译器在此行提示错误!Car car; Airplane airplane; car.run();airplane.run();cout<<"(b) 用指向基类的指针访问成员函数: "<<endl;Vehicle *vp;vp=&car;vp->run();vp=&airplane;vp->run();system("pause");return 0;}
void run() const {cout << "run a car. "<<endl; } }; class Airplane: public Vehicle {public: void run() const {cout << "run a airplane. "<<endl;} }; int main() {cout<<"(a) 直接用对象访问成员函数: "<<endl;Vehicle v;v.run();Car car; Airplane airplane; car.run();airplane.run();cout<<"(b) 用指向基类的指针访问成员函数: "<<endl;Vehicle *vp;vp=&car;vp->run();vp=&airplane;vp->run();system("pause");return 0;}
运行结果:
源程序 2:
#include <iostream> using namespace std;class Vehicle {public: virtual void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数}; class Car: public Vehicle {public: void run() const {cout << "run a car. "<<endl; } }; class Airplane: public Vehicle {public: void run() const {cout << "run a airplane. "<<endl;} }; int main() {cout<<"(a) 直接用对象访问成员函数: "<<endl;Vehicle v;v.run();Car car; Airplane airplane; car.run();airplane.run();cout<<"(b) 用指向基类的指针访问成员函数: "<<endl;Vehicle *vp;vp=&car;vp->run();vp=&airplane;vp->run();system("pause");return 0;}运行结果:
源程序 3:
#include <iostream> using namespace std;class Vehicle {public: virtual void run() const =0; //(2) run()为虚函数}; class Car: public Vehicle {public: void run() const {cout << "run a car. "<<endl; } }; class Airplane: public Vehicle {public: void run() const {cout << "run a airplane. "<<endl;} }; int main() {cout<<"(a) 直接用对象访问成员函数: "<<endl;//Vehicle v;编译器在此行提示错误!//v.run();编译器在此行提示错误!Car car; Airplane airplane; car.run();airplane.run();cout<<"(b) 用指向基类的指针访问成员函数: "<<endl;Vehicle *vp;vp=&car;vp->run();vp=&airplane;vp->run();system("pause");return 0;}
运行结果:
小感:
一、多态性
指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作
二、虚函数
虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数。可实现成员函数的动态重载。
三、纯虚函数
纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法
- 13.1 对虚函数、多态性和抽象类的理解
- 第十三周实验--任务1--我对虚函数、多态性和抽象类的理解
- 第十三周作业任务1我对虚函数、抽象类和多态性的理解
- 第十三周实验报告(一)用自己的话总结对虚函数、多态性和抽象类的理解
- 第13周实验报告1 :虚函数、多态性和抽象类的理解
- 对 c++多态性和虚函数的理解
- 多态性:纯虚函数和抽象类
- 第十三周任务一(通过程序分析理解虚函数, 多态性和抽象类)
- 关于多态性和虚函数的理解
- 多态性 虚函数 抽象类
- 第十三周 任务三 虚函数、多态性和抽象类
- 动物这样叫(多态性、虚函数和抽象类)
- 第十四周--多态性、虚函数和抽象类(1)
- 第十四周--多态性、虚函数和抽象类(2)
- 第十四周--多态性、虚函数和抽象类
- 第十四周--多态性、虚函数和抽象类(4)
- 第十四周--多态性、虚函数和抽象类(5)
- C++第十三周【任务1】开车学习虚函数、多态性和抽象类的应用
- CEdit中对于回车键的响应
- 《第十三周任务二-----2.3》改造程序,使Animal设计为抽象类。将这一数据成员作为抽象类Animal数据成员被各派生类使用
- Mini6410移植RT3070网卡
- mysql中having语句与where语句的用法与区别
- HttpClient中的POST方法
- 13.1 对虚函数、多态性和抽象类的理解
- jquery刷新页面
- jquery语法基础(二)
- iwconfig工具使用
- 各种排序算法的基本思想
- [转]Android中解析XML
- Regular DLL Tutor For Beginners
- Mac os x下清空废纸篓
- [转]httpSession的正确理解