四 實驗結論
2.實驗任務2
(1)同名覆蓋原則:派生類中的同名函式覆蓋掉基類中的同名函式,如果想呼叫基類的同名函式,必須用類作用域符::來進行區分。
(2)二元作用域分辨符:①在派生類內部訪問基類同名函式②在派生類外通過派生類訪問基類同名函式
(3)型別相容原則:派生類可相容基類
(4)微調後**截圖如下:
虛函式的作用是允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標或引用來訪問基類和派生類中的同名函式。
3.實驗任務3
battery.hpp
#ifndef battery_hppcar.hpp#define battery_hpp
class
battery
;battery::battery(
double capacity_1=70
):capacity(capacity_1)
;battery::~battery()
;double
battery::get_capacity()
;#endif
#ifndef car_hppelectriccar.hpp#define car_hpp#include
#include
#include
using
namespace
std;
class
car;
car::car(
string maker_1,string model_1,int year_1,int odometers_1=0
):maker(maker_1),model(model_1),year(year_1),odometers(odometers_1)
;car::~car()
;void car::info() const
;int car::update_odometers(int
odometers_test)
;#endif
#ifndef electriccar_hpptask3.cpp#define electriccar_hpp#include
#include
#include
"car.hpp
"#include
"battery.hpp
"class electriccar:public car,public
battery
;electriccar::electriccar(
string maker_1,string model_1,int year_1,int odometers_1=0,double capacity_1=70
):car(maker_1,model_1,year_1,odometers_1),battery(capacity_1)
;electriccar::~electriccar()
;
void
electriccar::info()
#endif
#include #include程式執行截圖"electriccar.hpp
"int
main()
4.實驗任務4
pets.hpp
#ifndef pets_hpptask4.cpp#define pets_hpp#include
#include
#include
using
namespace
std;
class
machinepets
;machinepets::machinepets(
const
string
s):nickname(s)
;machinepets::~machinepets()
;string machinepets::get_nickname() const
;string
machinepets::machinepets::talk()
;class petcats:public
machinepets
;petcats::petcats(
const
string
s):machinepets(s)
;petcats::~petcats()
;string
petcats::talk()
;class petdogs:public
machinepets
;petdogs::petdogs(
const
string
s):machinepets(s)
;petdogs::~petdogs()
;string
petdogs::talk()
;#endif
#include #include程式執行截圖"pets.hpp
"void play(machinepets *ptr)
intmain()
五.實驗總結
(1)在定義派生類函式時,呼叫基類函式,報錯基類函式未宣告,原因在於沒有申明定義的函式時類中的,也就是沒有加electriccar::
實驗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...