freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第11章繼承與派生-資料下載頁

2025-08-23 09:21本頁面

【導(dǎo)讀】考慮做一個程序,處理某公司所雇傭人員的問題。在C++中可重用性是通過繼承機(jī)制來實(shí)現(xiàn)。礎(chǔ)上建立一個新的類。已存在的類稱為“基類”或“父類”。箭頭表示繼承的方向,從派生類指向基類。聲明派生類的一般形式為。private(私有的)(默認(rèn)的)。函數(shù)和析構(gòu)函數(shù)。只是將那些特別屬于派生類的信息附加在最后。

  

【正文】 class B :virtual public A //A作為 B的虛基類 {B(int n):A(n){ } …}。 class C :virtual public A //A作為 C的虛基類 {C(int n):A(n){ } …}。 class D :public B,public C {D(int n):A(n),B(n),C(n){ } …}。 3. 虛基類的簡單應(yīng)用舉例 include iostream include string using namespace std。 class Person {public: Person(string nam,char s,int a)//構(gòu)造函數(shù) { name=nam。 sex=s。 age=a。} protected: //保護(hù)成員 string name。 char sex。 int age。 }。 class Teacher:virtual public Person {public: Teacher(string nam,char s,int a, string t):Person(nam,s,a) {title=t。 } protected: string title。 //職稱 }。 class Student:virtual public Person {public: Student(string nam,char s,int a,float sco) :Person(nam,s,a) {score=sco。} protected: float score。 //成績 }。 class Graduate:public Teacher,public Student {public: Graduate(string nam,char s,int a, string t,float sco,float w) :Person(nam,s,a),Teacher(nam,s,a,t),Student(nam,s,a,sco),wage(w){} void show( ) //輸出研究生的有關(guān)數(shù)據(jù) {cout″name:″nameendl。 cout″age:″ageendl。 cout″sex:″sexendl。 cout″score:″scoreendl。 cout″title:″titleendl。 cout″wages:″wageendl。 } private: float wage。 //工資 }。 基類與派生類的轉(zhuǎn)換 (1) 派生類對象可以向基類對象賦值。 A a1。 //定義基類 A對象 a1 B b1。 //定義類 A的公用派生類 B的對象 b1 a1=b1。 //用派生類 B對象 b1對基類對象 a1賦值 基類與派生類的轉(zhuǎn)換 (2) 派生類對象可以向基類對象的引用進(jìn)行賦值或初始化。 A a1。 B b1。 Aamp。 r=a1。 r=b1。 Aamp。 r=b1。 基類與派生類的轉(zhuǎn)換 (3) 如果函數(shù)的參數(shù)是基類對象或基類對象的引用,相應(yīng)的實(shí)參可以用子類對象。 如 : void fun(Aamp。 r) {coutendl。} fun(b1)。 基類與派生類的轉(zhuǎn)換 (4) 派生類對象的地址可以賦給指向基類對象的指針變量。 A *pa。 B b1。 pa=amp。b1。 例 定義一個基類 Student(學(xué)生 ),再定義Student類的公用派生類 Graduate(研究生 ),用指向基類對象的指針輸出數(shù)據(jù)。 include iostream include string using namespace std。 class Student//聲明 Student類 {public: Student(int, string,float)。 //聲明構(gòu)造函數(shù) void display( )。 //聲明輸出函數(shù) private: int num。 string name。 float score。 }。 Student::Student(int n, string nam,float s) //定義構(gòu)造函數(shù) {num=n。 name=nam。 score=s。 } void Student::display( ) //定義輸出函數(shù) {coutendl″num:″numendl。 cout″name:″nameendl。 cout″score:″scoreendl。 } class Graduate:public Student {public: Graduate(int, string ,float,float)。 //聲明構(gòu)造函數(shù) void display( )。 //聲明輸出函數(shù) private: float pay。 //工資 }。 Graduate::Graduate(int n, string nam,float s,float p): Student(n,nam,s),pay(p){ } void Graduate::display() //定義輸出函數(shù) {Student::display()。 //調(diào)用 Student類的 display函數(shù) cout″pay=″payendl。 } int main() {Student stud1(1001,″Li″,)。 Graduate grad1(2020,″Wang″,)。 Student *pt=amp。stud1。 ptdisplay( )。 pt=amp。grad1。 //指針指向 grad1 ptdisplay( )。 } 繼承與組合 ?在一個類中以另一個類的對象作為數(shù)據(jù)成員的,稱為類的組合。 class Teacher//教師類 {public: ┆ private: int num。 string name。 char sex。 }。 class BirthDate { public: ┆ private: int year。 int month。 int day。 }。 class Professor:public Teacher {public: ┆ private: BirthDate birthday。 }。 繼承是縱向的,組合是橫向的 void fun1(Teacher amp。)。 void fun2(BirthDate amp。)。 在 main函數(shù)中調(diào)用這兩個函數(shù) : fun1(prof1)。//正確 fun2()。//正確 fun2(prof1)。//錯誤
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1