1.1源程式:
/*(檔案注釋頭部開始)
*程式的版權和版本宣告部分
*檔名稱:vehicle類
*作 者:2011級計114-3張宗佳
*完成日期:2023年5月14號
*版本號:vc
* 對任務及求解方法的描述部分
* 輸入描術:
* 問題描述:請寫出程式的執行結果,並在上機時對照理解
* 程式輸出:
* 程式頭部的注釋結束
*/
#include using namespace std;
class vehicle
實驗結果:
(a) 直接用物件訪問成員函式:
run a vehicle.
run a car.
run a airplane.
(b) 用指向基類的指標訪問成員函式:
run a vehicle.
run a vehicle.
請按任意鍵繼續. . .
1.2源程式:
/*(檔案注釋頭部開始)
*程式的版權和版本宣告部分
*檔名稱:vehicle類
*作 者:2011級計114-3張宗佳
*完成日期:2023年5月14號
*版本號:vc
* 對任務及求解方法的描述部分
* 輸入描術:
* 問題描述:如果將vehicle類的定義修改為虛函式,其餘不變,請寫出程式的執行結果,並在上機時對照理解
* 程式輸出:
* 程式頭部的注釋結束
*/
#include using namespace std;
class vehicle
實驗結果:
(a) 直接用物件訪問成員函式:
run a vehicle.
run a car.
run a airplane.
(b) 用指向基類的指標訪問成員函式:
run a car.
run a airplane.
請按任意鍵繼續. . .
1.3源程式:
/*(檔案注釋頭部開始)
*程式的版權和版本宣告部分
*檔名稱:vehicle類
*作 者:2011級計114-3張宗佳
*完成日期:2023年5月14號
*版本號:vc
* 對任務及求解方法的描述部分
* 輸入描術:
* 問題描述:如果將vehicle類的定義修改為純虛函式,找出main()函式中將使編譯出錯的行刪除(或改為注釋),請寫出程式的執行結果,並在上機時對照理解
* 程式輸出:
* 程式頭部的注釋結束
*/
#include using namespace std;
class vehicle
; class car: public vehicle
實驗結果:
(a) 直接用物件訪問成員函式:
run a car.
run a airplane.
(b) 用指向基類的指標訪問成員函式:
run a car.
run a airplane.
請按任意鍵繼續. . .
總結:1.在任務1.1中,基類vehicle類中的成員函式沒有定義為虛函式,在主函式中定義的指標物件*p指向vehicle,而不指向其他兩個類,所以在執行
vp=&car; vp->run(); vp=&airplane; vp->run();
時,輸出的是run a vehicle. run a vehicle.
2.在任務1.2中,vehicle類中的成員函式定義為虛函式,這樣在執行vp=&car; vp->run(); vp=&airplane; vp->run();時,在派生類中呼叫虛函式時,就取代了基類中的虛函式
3.在任務1.3中,vehicle類中的成員函式定義為純虛函式,純虛函式中沒有函式體,而含有純虛函式的基類被稱為抽象類,不能例項化,且在派生類中呼叫虛函式時,其虛函式就取代了基類中的虛函式
第十三周閱讀專案(4) 多型性與虛函式
1 include using namespace std class vehicle 交通工具 執行結果 學習心得 宣告的vp是vehicle類的指標,派生類能給基類賦值,而基類不能給派生類賦值,所以vp car vp run vp airplane vp run 最後還是輸出run a vehi...
第十三周 任務二
程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 抽象類 作 者 薛廣晨 完成日期 2012 年 5 月 11 日 版 本 號 x1.0 對任務及求解方法的描述部分 輸入描述 使用抽象類 問題描述 任務2 下面給出了基類animal和main 函式。任務2.1 根據main 函式給出的注釋提示,設...
第十三周任務(三)
include iostream includeusing namespace std class shape class circle public shape private double r double circle area const class rectangle public sha...