//
*Copyright(c) 2016.煙臺大學計算機與控制工程學院
*ALL rights reserved.
*文件名稱:main.cpp
*作者:孫亞茹
*完成日期:2016年5月31日
*問題描述:閱讀,修改和運行關於交通工具類的程序,回答問題,以理解相關技術方法。
*//
#include<iostream>
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 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();
return 0;
}
回答:
執行的是派生類的成員函數。
因爲同名成員函數在基類中已經聲明爲虛函數了。
多態性:指不同對象收到相同消息或相同對象收到不同消息時產生的不同實現動作,目的是實現接口重用。