task2.cpp原始碼
#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.cpp修改後原始碼
#include #includetask2.cpp修改後的實驗結果截圖://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的歸納總結
同名覆蓋原則:覆蓋是指派生類重新實現(或者改寫)了基類的成員函式,其特徵如下:1.不同的作用域(分別位於派生類和基類中);2.函式名稱相同;3.引數列表完全相同;
4.基類函式必須是虛函式。滿足這四個條件之後,派生類的物件使用函式時會進行派生類中的**規則執行。
二元作用域分辨符:即不論是否派用類還是基類,同名函式前對應的類名是什麼,對應的**執行規則便是該類名內的規則。
型別相容原則:1.派生類的物件可以隱含轉換為基類物件;2.派生類的物件可以初始化基類的引用;3.派生類的指標可以隱含轉換為基類的指標
task3.cpp原始碼
#include #includetask3.cpp修改後原始碼"electriccar.hpp
"int
main()
#include #includebattery.hpp原始碼"electriccar.hpp
"int
main()
#includeusingcar.hpp原始碼namespace
std;
class
battery
intget_capacity()
private
:
intcapacity;
};
#include#includeelectriccar.hpp原始碼using
namespace
std;
class
car
virtual
void
info()
void update_odometers(float
n_odometers)
private
:
string
maker;
string
model;
intyear;
float
odometers;
};
#include#includetask3實驗結果截圖"battery.hpp
"#include
"car.hpp
"using
namespace
std;
class electriccar:public
car
void
info()
private
: battery battery;
};
task3修改後實驗結果截圖
task4.cpp原始碼
#include #includepets.hpp原始碼"pets.hpp
"void play(machinepets *ptr)
intmain()
#include#includetask4實驗結果截圖using
namespace
std;
class
machinepets
virtual
string
talk()
string
get_nickname()
private
:
string
nickname;
};class petcats:public
machinepets
string
talk()
};class petdogs:public
machinepets
string
talk()
};
實驗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...