* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:阅读程序
* 作 者:齐艳红 * 完成日期: 2011年 5月 11日 * 版 本 号: * 对任务及求解方法的描述部分: *问题描述:用自己的话概括虚函数、 多太性和抽象类的理解
#include<iostream> using namespace std; class Vehicle { public: void run() const {cout<<"run a vehicle."<<endl;} }; class Car:public Vehicle { public: void run()const{cout<<"run a car."<<endl;} }; class Airplain:public Vehicle { public: void run()const{cout<<"run a airplain."<<endl;} }; int main() { cout<<"(a)直接用对象访问成员函数:"<<endl; Vehicle v; v.run(); Car car; Airplain airplain; car.run(); airplain.run(); cout<<"(b)用指向基类的指针访问成员函数:"<<endl; Vehicle *vp; vp=&car; vp->run(); vp=&airplain; vp->run(); system ("pause"); } (a)直接用对象访问成员函数: run a vehicle. run a car. run a airplain. (b)用指向基类的指针访问成员函数: run a vehicle. run a vehicle. 请按任意键继续. . .
#include using namespace std; class Vehicle { public: virtual void run() const {cout<<"run a vehicle."<<endl;} }; class Car:public Vehicle { public: void run()const{cout<<"run a car."<<endl;} }; class Airplain:public Vehicle { public: void run()const{cout<<"run a airplain."<<endl;} }; int main() { cout<<"(a)直接用对象访问成员函数:"<<endl; Vehicle v; v.run(); Car car; Airplain airplain; car.run(); airplain.run(); cout<<"(b)用指向基类的指针访问成员函数:"< run(); vp=&airplain; vp->run(); system ("pause"); }
(a)直接用对象访问成员函数:run a vehicle.run a car.
run a airplain.
(b)用指向基类的指针访问成员函数:run a car.
总结:这个结果和我之前预测的一样,对于虚函数的理解我有自己的看法:那就是我和你不一样,你可以套用我的,还可以增加你的,而我不变我就是我!这个和老贺说的拿东西原理一样。run a airplain.请按任意键继续. . .
而多态性:书上说是面向对象程序设计的一个重要特征。这个可以设计和实现易于扩展的系统。这好比每个人有每个人得责任,这里还有一个主管,每个人都要做好自己的责任,完成主管分配的任务,比较系统化。
抽象类:不用来定义对象而只作为一种基本类型用作继承的类,又叫抽象基类,而他的作用就是提供公共接口,他是一个类族的共同基类,或者说为一个类族提供公共接口,作用都很大啊!