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

正文內(nèi)容

[工學(xué)]程序設(shè)計與問題求解ⅱ(參考版)

2024-10-19 18:40本頁面
  

【正文】 coutmain\n。 C vc(2,va)。 } }。 coutin C\n。k) : B(i) , a(k) {coutcons C\n。 class C : public B { A a 。 } ~B() {coutdes B\n。 public: B(int m=0) : x(m) { coutcons B\n。 } }。a) { coutcopy A\n。 } 虛基類的初始化( 2) 程序設(shè)計與問題求解 Ⅱ 67 綜合練習(xí) class A { public: A() {coutcons A\n。} }。} }。} }。} }。 程序設(shè)計與問題求解 Ⅱ 66 include iostream using namespace std。 程序設(shè)計與問題求解 Ⅱ 65 虛基類的初始化( 1) ?如果在虛基類中定義了帶參數(shù)的構(gòu)造函數(shù),而沒有定義默認(rèn)構(gòu)造函數(shù),則在其所有派生類(包括直接 派生或 間接 派生類)中,通過構(gòu)造函數(shù)的初始化表對虛基類進行初始化。 ?將此基類聲明為虛基類,可使其在該派生類中只產(chǎn)生一個副本。 } 。 } 。 } 。} 。 class C { f () , d } class B1 { b1 } class B2 {b2} class B { b } class B { b } B B B1 B2 C 多派生類 C 的對象的存儲結(jié)構(gòu)示意 建立 C 類對象時,將產(chǎn) 生兩個 B 的成員副本,一個是 由 B1繼承而來的,另一個是由 B2繼承而來的。 private : int d 。 } 。 } 。} 。//不存在二義性 } 類名限定法 程序設(shè)計與問題求解 Ⅱ 62 虛基類 ?定義虛基類來解決二義性 當(dāng)同一個基類被同一個派生類間接繼承多次的時候,可將該基類定義為虛基類,使從不同路徑繼承過來的該類成員在派生類中只擁有一個副本,從而消除二義性問題。 =3。 }。 class C: public A, public B { public: int a。 void display(){}。 }。//存在二義性 } 同名覆蓋原則 程序設(shè)計與問題求解 Ⅱ 61 class A { public: int a。 =3。 }。 class C: public A, public B { public: int a。 void display(){}。 }。 程序設(shè)計與問題求解 Ⅱ 60 class A { public: int a。 程序設(shè)計與問題求解 Ⅱ 59 二義性問題( 2) ?解決二義性的方法 ?同名覆蓋(隱藏)原則 如果派生類與基類之間出現(xiàn)同名成員,這時系統(tǒng)自動用派生類的成員名覆蓋(隱藏)基類成員名,派生類成員名優(yōu)先。 ?當(dāng)同一個基類被同一個派生類間接繼承多次的時候,將在該派生類中產(chǎn)生該基類的多個副本。 void show()。 int a void display()。 C類 int a。 B類 int a。//執(zhí)行哪一個 ? } 兩個基類有同名成員 程序設(shè)計與問題求解 Ⅱ 57 A類 int a。 =3。 }。 class C: public A, public B { public: int a。 void display(){}。 }。 } 程序設(shè)計與問題求解 Ⅱ 56 class A { public: int a。//以 Cat類對象初始化 Pet類引用 p4 .Speak()。 Pet amp。dog1。 //用 Cat類對象地址給基類指針賦值 p1Speak()。 p1 = amp。 obj = dog1。 //基類對象指針 p1, 基類對象 obj Dog dog1。 } }。 } }。 } }。 } 程序設(shè)計與問題求解 Ⅱ 55 賦值兼容規(guī)則舉例( 2) include iostream using namespace std。 A c=b。 ()。 (3)。 ()。 void main() { A a。\n39。 public: void setY(int m) { y=m。 } } 。 } void printX() { coutx39。 ?通過基類對象名、指針只能使用派生類從基類繼承的成員(不能使用派生類新增的成員) 程序設(shè)計與問題求解 Ⅱ 54 賦值兼容規(guī)則舉例( 1) class A { int x。 ?可以把派生類對象賦值給基類對象。 return 0。d。\n39。d。 cout Derived can be treated as an object of either base class:\n。 //派生類對象對基類成員函數(shù)的訪問 cout Data members of Derived can be accessed individually:。 //對象輸出各自的數(shù)據(jù)成員 cout Object b1 contains integer () \nObject b2 contains character () \nObject d contains:\n。A39。 ), *base2Ptr = 0。 Base2 b2( 39。 } 程序設(shè)計與問題求解 Ⅱ 52 // include iostream using namespace std。 include Derived::Derived( int i, char c, double f ): Base1( i ), Base2( c ), real ( f ) { } double Derived::getReal() const { return real。 }。 double getReal() const。 endif 程序設(shè)計與問題求解 Ⅱ 51 多繼承(續(xù)) // ifndef DERIVED_H define DERIVED_H include include // 多繼承 class Derived : public Base1, public Base2 { double real。 } char getData() const { return letter。 endif // ifndef BASE2_H define BASE2_H class Base2 { char letter。 } int getData() const { return value。 多繼承的構(gòu)造函數(shù)與析構(gòu)函數(shù) 程序設(shè)計與問題求解 Ⅱ 50 多繼承 // ifndef BASE1_H define BASE1_H class Base1 { int value。 ?調(diào)用對象成員的構(gòu)造函數(shù),調(diào)用順序按照它們在類中聲明的順序。 ?注意:每個繼承方式,僅限制緊隨其后的基類的繼承。 return 0。 ::Print()。 ()。 ()。 Circle c(120,80,)。 } 程序設(shè)計與問題求解 Ⅱ 47 單繼承(續(xù)) // include iostream using namespace std。 cout 。} void Circle::Print() { cout Center = 。} double Circle::GetRadius(){ return radius。 include Circle::Circle(int a,int b,double r): Point(a,b) { SetRadius( r )。//輸出圓心坐標(biāo)和半徑 }。//取半徑 double Area()。 void SetRadius( double )。 include class Circle : public Point { double radius。]39。[39。 y = b。 include Point::Point( int a, int b ) { SetPoint( a, b )。 //輸出點的坐標(biāo) }。 }// 取 x坐標(biāo) int GetY() { return y。 void SetPoint( int, int )。 } 程序設(shè)計與問題求解 Ⅱ 45 單繼承 // Point類的聲明 ifndef POINT_H define POINT_H class Point { int x, y。 ()。,02035003,信管 01)。 Student std1(李木子,22,39。m39。 strcpy(Class, classid)。 Student::Student(char *name,int age,char sex,char *id,char *classid) { Register(name,age,sex)。 cout 班級: Class\n。 void ShowMe() { cout 學(xué)號: IDendl。 char Class[12]。 Salary = salary。 Teacher::Teacher(char *name,int age,char sex,char *dept,int salary) { Register(name,age,sex)。 cout 月薪: Salaryendlendl。 void ShowMe() {Person::ShowMe()。 int Salary。} }。?男 :女)endl。 cout 性別: (Sex==39。 Age = age。f39。m39。m39。 public: void Register(char *name,int age,char sex) { strcpy(Name, name)。 char Sex。 程序設(shè)計與問題求解 Ⅱ 42 ?繼承與派生結(jié)構(gòu): ?單派生:一個基類派生出一個派生類 ?多派生:一個基類派生出多個不同的派生類 ?多層派生:派生類又作為基類,繼續(xù)派生新的類 ?單繼承:派生類只從一個基類派生 ?多(重)繼承:派生類從多個基類派生 繼承與派生結(jié)構(gòu) 程序設(shè)計與問題求解 Ⅱ 43 多派生 include iostream include cstring using namespace
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1