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

正文內(nèi)容

修練8年c面向?qū)ο蟪绦蛟O(shè)計(jì)之體會(huì)(編輯修改稿)

2024-11-04 00:20 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 。void Show()。}。const double PI=。inline double Circle::Area(){ return PI * radius * radius。}void Circle::Show(){ coutconst引用const引用的說明形式如下: const 類型說明符amp。 引用名const對(duì)象const對(duì)象的說明形式如下: const 類名 對(duì)象名[(參數(shù)表)]。如:const Data Mybirthday(1980,1,1)。const對(duì)象的數(shù)據(jù)成員值不能被改變,const對(duì)象必須進(jìn)行初始化。通過const對(duì)象只能調(diào)用它的const成員函數(shù),而不能調(diào)用普通成員函數(shù)。const數(shù)據(jù)成員const數(shù)據(jù)成員只能通過構(gòu)造函數(shù)的初始化列表來獲得初始值。const成員函數(shù)const成員函數(shù)的說明格式如下: 類型說明符 函數(shù)名(參數(shù)表)const。如:int GetYear()const { return year。} const成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,也不能調(diào)用對(duì)象的普通成員函數(shù)。const是函數(shù)類型的一個(gè)組成部分,因此在函數(shù)的實(shí)現(xiàn)部分也要帶關(guān)鍵字const。引用類型的數(shù)據(jù)成員引用類型的數(shù)據(jù)成員也只能通過構(gòu)造函數(shù)的初始化列表來進(jìn)行初始化。例class Test { private: int a。const int b。//不能寫成const int b=10,因類的定義還沒分配空間 int amp。c。//不能寫成const int amp。c=a,因變量a還沒分配空間 public: Test(int i,int j,int amp。k):b(j),c(k){ a=i。} Test():b(10),c(a){ a=20。} } 第4章 派生類與繼承 派生類的概念 派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)例:圓類 Circle(繼承Point類的寫法)class Circle: public Point { private: double radius。//半徑 public: Circle(){} Circle(int x, int y, double r): Point(x,y){ SetRadius(r)。} Circle(Point p, double r): Point(p){ SetRadius(r)。} double GetRadius()const { return radius。} void SetRadius(double r){ radius =(r=0 ? r : 0)。} void SetValue(int x, int y, double r){ SetXY(x,y)。SetRadius(r)。} double Area()。void Show()。}。const double PI=。inline double Circle::Area(){ return PI * radius * radius。}void Circle::Show(){ cout派生類繼承了它的所有基類中除構(gòu)造函數(shù)和析構(gòu)函數(shù)之外的所有成員。在派生類中成員按訪問屬性劃分為四種:不可訪問的成員、私有成員、保護(hù)成員、公有成員。對(duì)從基類繼承下來的成員初始化工作是通過調(diào)用基類的構(gòu)造函數(shù)來完成的,調(diào)用方法是在派生類的構(gòu)造函數(shù)中用初始化列表。如果在派生類的構(gòu)造函數(shù)省略了基類的初始化列表,則將調(diào)用基類的缺省構(gòu)造函數(shù)。如果基類定義了帶有參數(shù)的構(gòu)造函數(shù)時(shí),派生類就應(yīng)當(dāng)定義構(gòu)造函數(shù),以便顯式地調(diào)用基類的構(gòu)造函數(shù)。如果派生類定義了與基類同名的新數(shù)據(jù)成員或成員函數(shù),則此派生類的成員就覆蓋了基類的同名成員,直接使用成員名只能訪問到派生類的成員。在同名覆蓋的情況下,可以使用基類名+作用域分辨符來訪問基類的同名成員。如果派生類和基類的某個(gè)成員函數(shù)重名,但參數(shù)表不同,仍然屬于覆蓋,不屬于重載。對(duì)派生類的對(duì)象,構(gòu)造函數(shù)的執(zhí)行過程是:先調(diào)用基類的構(gòu)造函數(shù)(按它們被繼承時(shí)聲明的順序),再調(diào)用內(nèi)嵌對(duì)象成員的構(gòu)造函數(shù)(按內(nèi)嵌對(duì)象聲明的順序),最后執(zhí)行自己的構(gòu)造函數(shù)體中的內(nèi)容。析構(gòu)函數(shù)的調(diào)用次序正好和構(gòu)造函數(shù)的調(diào)用次序相反。例:學(xué)生類 Student // include “” class Student: public Person { protected: char *Department。int Number。public: Student(){ Department = 0。Number = 0。} Student(char *, int, char, char *, int)。Student(Student amp。stu)。~Student(){ delete[] Department。} void SetDep(char*)。void SetNum(int num){ Number = num。} char *GetDep()const { return Department。} int GetNum()const { return Number。} void Show()。}。// include “” include using namespace std。Student::Student(char *name,int age,char sex,char *dep,int num): Person(name, age, sex){ Department = new char[strlen(dep)+1]。strcpy(Department, dep)。Number = num。}Student::Student(Student amp。stu): Person(stu){ Department = new char[strlen()+1]。strcpy(Department, )。Number = 。}void Student::SetDep(char *dep){ delete[] Department。Department = new char[strlen(dep)+1]。strcpy(Department, dep)。}void Student::Show(){ Person::Show()。cout 多重繼承例1:X和Y是基類,Z從X和Y派生 class X { public: int b。X(int k){ b=k。} }。class Y { public: int c。Y(int k){ c=k。} }。class Z: public X, public Y { public: int d。Z(int i,int j,int k):X(i),Y(j){ d=k。} } 例2:X和Y都從W派生而來 class W { public: int a。W(int k){ d=k。} }。class X: public W { public: int b。X(int i, int k): W(i){ b=k。} }。class Y: public W { public: int c。Y(int i, int k): W(i){ c=k。} }。class Z: public X, public Y { public: int d。Z(int i, int j, int k, int l): X(i,j),Y(i,k){ d=l。} } int main(){ Z t(10,20,30,40)。cout例3:將W做為X和Y的虛基類 class W { public: int a。W(int k){ a=k。} }。class X: virtual public W { public: int b。X(int i, int k): W(i){ b=k。} }。class Y: virtual public W { public: int c。Y(int i, int k): W(i){ c=k。} }。class Z: public X, public Y { public: int d。Z(int i, int j, int k, int l): W(i),X(i,j),Y(i,k){ d=l。} } int main(){ Z t(10,20,30,40)。cout(2)建立一個(gè)對(duì)象時(shí),如果這個(gè)對(duì)象中含有從虛基類繼承來的成員,則虛基類的成員是由最遠(yuǎn)派生類的構(gòu)造函數(shù)通過調(diào)用虛基類的構(gòu)造函數(shù)進(jìn)行初始化的。該派生類的其他基類對(duì)虛基類構(gòu)造函數(shù)的調(diào)用都自動(dòng)被忽略。(3)若同一層次中同時(shí)包含虛基類和非虛基類,應(yīng)先調(diào)用虛基類的構(gòu)造函數(shù),再調(diào)用非虛基類的構(gòu)造函數(shù),最后調(diào)用派生類構(gòu)造函數(shù)。(4)對(duì)于多個(gè)虛基類,構(gòu)造函數(shù)的執(zhí)行順序仍然是先左后右,自上而下。(5)對(duì)于非虛基類,構(gòu)造函數(shù)的執(zhí)行順序仍是先左后右,自上而下。(6)若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)。 賦值兼容規(guī)則所謂賦值兼容規(guī)則是指在需要基類對(duì)象的任何地方都可以使用公有派生類的對(duì)象來替代。附:線性表——順序表class SeqList { private: int *data。int size。int MaxSize。public: SeqList(int sz=100)。~SeqList(){ delete []data。} int Length()const { return size。} bool IsEmpty()const { return size==0。} void Insert(const int amp。x, int k)。void Delete(int k)。int GetData(int k)const。int Find(const int amp。x)const。void Show()const。}。SeqList::SeqList(int sz){ MaxSize=sz。data=new int[MaxSize]。size=0。}void SeqList::Insert(const int amp。x, int k){ if(ksize+1){ cerr=k1。i)data[i+1]=data[i]。data[k1]=x。size++。}void SeqList::Delete(int k){ if(size==0){ cerrsize){ cerrint SeqList::GetData(int k)const { if(ksize){ cerrint SeqList::Find(const int amp。x)const { for(int i=0。ivoid SeqList::Show()const { for(int i=0。i第5章 多態(tài)性 編譯時(shí)的多態(tài)性與運(yùn)行時(shí)的多態(tài)性 函數(shù)重載 運(yùn)算符重載例:復(fù)數(shù)類Complex // include using namespace std。class Complex { private: double re, im。public: Complex(double r=0, double i=0){ re=r。im=i。} double real(){ return re。} double imag(){ return im。} Complex operator+(){ return *this。} Complex operator(){ return Complex(re,im)。} Complex amp。operator+=(Complex amp。)。Complex amp。operator=(Complex amp。)。Complex amp。operator*=(Complex amp。)。Complex amp。operator/=(Complex amp。)。friend Complex operator+(Complex amp。, Complex amp。)。friend Complex operator(Complex amp。, Complex amp。)。friend Complex operator*(Complex amp。, Complex amp。)。friend Complex operator/(Complex amp。, Complex amp。)。friend bool operator==(Complex amp。, Complex amp。)。friend bool operator!=(Complex amp。, Complex amp。)。friend ostream amp。operator(istream amp。, Complex amp。)。operator double(){ return re。} }。//include“” include using namespace std。Complex amp。Complex::operator+=(Complex amp。c){ re += 。im += 。return *this。}Complex amp。Complex::operator=(Complex amp。c){ re= 。im= 。return *this。}Complex amp。Complex::operator*=(Complex amp。c){ double t = re * * )/ m。re = t。return *this。}Complex operator+(Complex amp。a, Complex amp。b){ return Complex( + , + )。}Complex operator(Complex amp。a, Complex amp。b){ return Complex()。}Complex operator*(Complex amp。a, Complex amp。b){ return Complex( * * )/ m)。}bool operator==(Complex amp。a, Complex amp。b){ return == amp。amp。 == 。}bool operato
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1