第十四周閱讀程式3
阿新 • • 發佈:2019-02-05
/* * 程式的版權和版本宣告部分: * Copyright (c) 2013, 煙臺大學計算機學院 * All rights reserved. * 檔名稱:test.cpp * 作 者:任子儀 * 完成日期:2014年 5月 27日 * 版 本 號:v12.1 * 輸入描述:無 * 問題描述:。 * 程式輸出: * 問題分析:略 * 演算法設計:略 */ #include <iostream> using namespace std; class Vehicle { public: virtual void run() const = 0; //(3) run()為純虛擬函式,const意指其為常成員函式,並非純虛擬函式之必要 }; 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; }
當基類同名成員函式定義為純虛擬函式後,關於基類的函式都不能再呼叫
示例圖片: