實驗4 繼承

2022-09-10 08:24:07 字數 2746 閱讀 7061

task2程式原始碼

#include #include 

//definitation of graph

class

graph

};//

definition of rectangle, derived from graph

class rectangle : public

graph

};//

definition of circle, derived from graph

class circle : public

graph

};//

definitaion of fun(): as a call inte***ce

void fun(graph *ptr)

//test

intmain()

執行結果截圖

task2微調後程式原始碼

#include #include 

//definitation of graph

class

graph

};//

definition of rectangle, derived from graph

class rectangle : public

graph

};//

definition of circle, derived from graph

class circle : public

graph

};//

definitaion of fun(): as a call inte***ce

void fun(graph *ptr)

//test

intmain()

執行結果截圖

歸納總結:

同名覆蓋原則:當派生類與基類有同名成員時,若未明確指出,則通過派生類物件使用的是派生類中的同名成員。

二元作用域分辨符:若要通過派生類物件訪問基類中被覆蓋的同名成員,應使用基類名及作用域分辨符限定。當多個基類存在同名成員時,如果通過派生類物件訪問存在二義性,也應使用基類名及作用域分辨符限定。

型別相容原則:乙個公有派生類的物件在使用上可以被當作基類的物件,反之,不可以。雖然型別相容原則,使得基類指標可以指向派生類物件,但是,通過指標,只能訪問從基類繼承的公有成員。

task3

battery.hpp

class

battery

int get_capacity()

};

car.hpp

#include#include 

#include

using

namespace

std;

class

car

void

info();

void update_odometers(int

a) };

void

car::info()

electriccar.hpp

#include#include 

#include

#include

"battery.hpp

"#include

"car.hpp

"class electriccar :public

car

void

info();

};void

electriccar::info()

task3.cpp

#include"electriccar.hpp"

#include

int

main()

執行結果截圖

執行結果截圖

實驗4 繼承

任務二 未加virtual 加virtual之後 同名覆蓋原則 基類中的函式和派生類的函式重名時,若未強行指名,則通過派生類物件使用的是派生類的同名成員 二元作用域分辨符 當派生類與基類中有相同成員時,如果要通過派生類物件訪問基類中被隱藏的同名成員,可以用基類名和作用域分辨符來限定 型別相容原則 在...

實驗4 繼承

task2 原 include include 歸納總結 同名覆蓋原則 當派生類的函式名或者成員名與基類的函式名或成員名發生重複 哪怕它們形參列表不同 將自動隱藏其父類的同名函式或物件,要使用其父類對應的函式或成員需要用父類作用域來進行說明。二元作用域分辨符 即 是雙目運算子,常用於 類名 成員,表...

實驗4 繼承

task2.cpp include include definitation of graph class graph definition of rectangle,derived from graph class rectangle public graph definition of circ...