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

正文內(nèi)容

c++程序設(shè)計(jì)實(shí)踐教程(下)ppt-預(yù)覽頁(yè)

 

【正文】 …… //省略其它成員函數(shù) }。 public: Person(const char* n,int a,const char* s); … //其它成員函數(shù)說(shuō)明 }。 } 也可在類(lèi)中聲明原型,在類(lèi)外定義。 ② 構(gòu)造函數(shù)可以重載。 //(1) Point(float a,float b){x=a。 //匹配 (1) Point p2(,)。 數(shù)據(jù)成員的初始化 ? 普通數(shù)據(jù)成員的初始化既可在函數(shù)體進(jìn)行,也可在初始化表進(jìn)行。 缺省的 構(gòu)造函數(shù) ① C++規(guī)定,每個(gè)類(lèi)至少有一個(gè)構(gòu)造函數(shù),否則就不能創(chuàng)建該類(lèi)的對(duì)象。 }。 class Rectangle{ float length,width。 …… //類(lèi)的實(shí)現(xiàn) void main( ) { Rectangle rect。 } //(1) }。 public: Circle(int r){ radius=r。 匹配 (1) 匹配 (2) 添加無(wú)參構(gòu)造函數(shù)! 對(duì)上例的修改方法 2 : class Circle{ int radius。 Circle c2。 public: Circle(){ } //L1 Circle(int r=0){ radius=r。 //匹配 L2行的構(gòu)造函數(shù) 當(dāng)編譯 L3行的語(yǔ)句時(shí),出錯(cuò)。 – 析構(gòu)函數(shù)沒(méi)有返回值,函數(shù)名前也不能用關(guān)鍵字 void。 public: Point(){ x=y=0。 coutConstructor with parameters called.\n。\n39。\n39。 ( )。 } coutExit main!\n。 ? 若類(lèi)的定義中沒(méi)有顯式定義析構(gòu)函數(shù),則編譯器自動(dòng)為該類(lèi)產(chǎn)生一個(gè)缺省的析構(gòu)函數(shù)。由于它們所指向的動(dòng)態(tài)內(nèi)存空間是對(duì)象自己管理的,因此在對(duì)象即將撤消時(shí),需通過(guò)析構(gòu)函數(shù)將所管理的動(dòng)態(tài)內(nèi)存空間及時(shí)釋放。 public: Person(char* n,int a) { if(n) { name=new char[strlen(n)+1]。 } ~Person( ){ delete []name。 } }。在相同的生存期的情況下,先創(chuàng)建的對(duì)象后釋放,后創(chuàng)建的對(duì)象先釋放。 public: Money (double d) { int t=d*100。 } Money (int y=0,int j=0,int f=0) { yuan=y。 } }。 Money m3=。 } 隱式類(lèi)型轉(zhuǎn)換:調(diào)用單參數(shù)構(gòu)造函數(shù),創(chuàng)建 Money類(lèi)型的臨時(shí)對(duì)象。c) { ... } //函數(shù)體完成對(duì)應(yīng)數(shù)據(jù)成員的賦值 ? 例 使用完成拷貝功能的構(gòu)造函數(shù)。 } Point(Pointamp。 } int GetX( ){ return x。 } }。 } Point Mid(Pointamp。 return Point(x,y)。 //等價(jià): Point p3(p1)。 p3=Mid(p0,p3)。 ?結(jié)果 (VC6 with sp6): 調(diào)用了拷貝構(gòu)造函數(shù) ! 調(diào)用了拷貝構(gòu)造函數(shù) ! x=8,y=15 x=8,y=15 x=8,y=15 調(diào)用了拷貝構(gòu)造函數(shù) ! 調(diào)用了拷貝構(gòu)造函數(shù) ! ? 默認(rèn)拷貝構(gòu)造函數(shù): – 若定義類(lèi)時(shí)未顯式定義該類(lèi)的拷貝構(gòu)造函數(shù),則編譯系統(tǒng)會(huì)在編譯該類(lèi)時(shí)自動(dòng)生成一個(gè)默認(rèn)拷貝構(gòu)造函數(shù)。 ? 例 默認(rèn)拷貝的構(gòu)造函數(shù)。} else p=NULL。 } }。 ( )。s) { if(){ p=new char[strlen()+1]。 ? 例如: class Date{ int year,month,day。 } }。 //對(duì)象成員 public: Person(char*, char*,int,int,int)。 } –若未在初始化表中初始化對(duì)象成員,則系統(tǒng)自動(dòng)調(diào)用該對(duì)象成員的缺省的構(gòu)造函數(shù)來(lái)初始化。 include class Point{ int x,y。 } void Show( ) { coutx=x,y=yendl。 public: Rectangle(int l,int w,int a,int b):p(a,b) { length=l。 coutlength=length,width=widthendl。 } 程序運(yùn)行結(jié)果: Constructor of class Point is called. Constructor of class Rectangle is called. x=45,y=55 length=5,width=4 友元 ? 有時(shí)需要在對(duì)象外部頻繁訪問(wèn)對(duì)象私有的或保護(hù)的數(shù)據(jù)成員,若通過(guò)調(diào)用公有成員函數(shù)間接訪問(wèn),由于參數(shù)傳遞、類(lèi)型檢查等都需占用時(shí)間,必然降低程序的運(yùn)行效率。 友元函數(shù) ? 友元函數(shù)的說(shuō)明格式: friend type FuncName(args)。y=j。,Pointamp。 double distance(Pointamp。 } void main( ) { Point a(8,15),b(3,7)。友元函數(shù)體可在類(lèi)內(nèi)或類(lèi)外定義。 – 一個(gè)類(lèi)的成員函數(shù)也可作為另一個(gè)類(lèi)的友元函數(shù),例如: class A{ … int f(… )。 // 是類(lèi) B的友元 在聲明這個(gè)友元函數(shù)時(shí)需要在函數(shù)名前面加上它的類(lèi)名和作用域運(yùn)算符 “ ::”。 include include class Date{ int year,month,day。} void display(){ coutyearmonthday。 char sex[4]。 =y。 cout,birthday:39。 } }。 ? 友元的其它注意事項(xiàng): – 友元關(guān)系沒(méi)有傳遞性。因友元函數(shù)不是類(lèi)的成員函數(shù),當(dāng)然不存在繼承關(guān)系。 char *name。 char *name。//定義性說(shuō)明: 為靜態(tài) //數(shù)據(jù)成員 count分配內(nèi)存和初始化 ? 與普通數(shù)據(jù)成員的區(qū)別: 類(lèi)的普通數(shù)據(jù)成員在類(lèi)的每個(gè)對(duì)象中都擁有一個(gè)拷貝;而靜態(tài)數(shù)據(jù)成員,每個(gè)類(lèi)只有一個(gè)拷貝,由該類(lèi)的所有對(duì)象共同維護(hù)和使用,從而實(shí)現(xiàn)了同一類(lèi)的不同對(duì)象之間的數(shù)據(jù)共享。 include class Apple{ float weight。 ~Apple( )。 count++。 } Apple:: ~Apple( ) { count。 } void Apple:: Show( ) { coutweight=weight ,total_weight=total_weight39。 void main( ) { Apple redone(100)。 ( )。 ? 靜態(tài)成員函數(shù)的引用格式: 類(lèi)名 ::靜態(tài)成員函數(shù) (參數(shù)表 ) 或 對(duì)象名 .靜態(tài)成員函數(shù) (參數(shù)表 ) 例 具有靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的 Apple類(lèi)。 public: Apple(float=0)。 static void ShowTotalWeight()。 total_weight+=weight。 total_weight=weight。\n39。\n39。 Apple::ShowTotalWeight( )。 ( )。若要訪問(wèn)非靜態(tài)數(shù)據(jù)成員,則可通過(guò)形參對(duì)象來(lái)訪問(wèn)。 }。 //正確 } const對(duì)象和成員函數(shù) ? 常成員函數(shù):在參數(shù)表后用 const修飾。 ? const對(duì)象:用 const說(shuō)明的對(duì)象。 – const對(duì)象只能調(diào)用常成員函數(shù) (構(gòu)造函數(shù)和析構(gòu)函數(shù)除外 ),以保證其數(shù)據(jù)成員不被修改 。month=m。day=d。,39。month39。 void main( ) { Date weekend(2021,7,8)。 const Date birthday(1983,7,13)。,39。 } – 常成員函數(shù)不能直接改變本對(duì)象的數(shù)據(jù)成員,也不能調(diào)用該對(duì)象的非 const成員函數(shù)間接改變本對(duì)象的數(shù)據(jù)成員。 void display( ) const。 應(yīng)用實(shí)例 ? 例 用類(lèi)和對(duì)象編程解決實(shí)際問(wèn)題。 – 鏈表類(lèi) StuList用于存放學(xué)生數(shù)據(jù),可完成鏈表創(chuàng)建、輸出等任務(wù)。 //姓名 float math,cpp。 public: Student( ){ } Student(int,char*,float,float,Student* =NULL)。name39。cpp39。\t39。 Student::Student(int no,char*name,float math, float cpp,Student*next) { Student::no=no。 thisnext=next。 } class StuList{ Student*head。 //創(chuàng)建鏈表 void print( ) const。 head=headnext。 char name[10]。 while(no!=1){ cout輸入姓名及數(shù)學(xué) 、 C++語(yǔ)言成績(jī) :, cinnamemathcpp。 cout輸入學(xué)號(hào) ,1表示結(jié)束 :。 while( p ){ pshow1( )。 } int Student::count。 ( )。 運(yùn)算符重載的基本方法 ? 重載運(yùn)算符的目的: 使運(yùn)算符可以直接操作自定義類(lèi)型的數(shù)據(jù)。 } Complex add(const Complex amp。 c3=(c2)。 ? 如何重載運(yùn)算符 – 運(yùn)算符重載 函數(shù): 為自定義類(lèi)型添加一個(gè)運(yùn)算符重載函數(shù),簡(jiǎn)稱(chēng) 運(yùn)算符 函數(shù) 。 關(guān)鍵字 重載運(yùn)算符,如: +、 等 ?舉例 – 為 Complex類(lèi)添加一個(gè)完成兩個(gè) Complex類(lèi)型對(duì)象相加的成員運(yùn)算符函數(shù) Complex operator+(Complex amp。 … }。 – 成員運(yùn)算符函數(shù)的定義方法與普通成員函數(shù)相同。image=i。//重載 +:復(fù)數(shù) +復(fù)數(shù) Complex operator(Complexamp。//重載 *:復(fù)數(shù) *復(fù)數(shù) Complex operator/(Complexamp。 void Complex::print( ) { if(image0) coutrealimagei\n。c) { return Complex(real+, image+)。c) { Complex temp。 } 第一操作數(shù)為當(dāng)前對(duì)象 Complex Complex::operator/(Complex amp。 =(image**)/r。 c3= c1+c2。 c3=c1c2。 c3=c1/c2。 } 實(shí)際通過(guò)調(diào)用 “ +”運(yùn)算符重載函數(shù)來(lái)完成,即: +(c2) 實(shí)際通過(guò)調(diào)用取負(fù)運(yùn)算符重載函數(shù)來(lái)完成,即: ( ) +、 、 *和 /運(yùn)算符重載函數(shù)的返回值類(lèi)型均為 Complex,使它們可繼續(xù)參加 Complex類(lèi)型數(shù)據(jù)的運(yùn)算,如 c1+c2+c3。 ? 對(duì)于 “ 實(shí)數(shù) +復(fù)數(shù) ” 這樣的操作只能通過(guò)重載 +運(yùn)算符為類(lèi)的友員函數(shù)來(lái)實(shí)現(xiàn)。 – 類(lèi)的友元函數(shù)可置于類(lèi)的任何位置。 include class Complex{ double real,image。 friend Complex operator+(Complexamp。,double)。,Complexamp。)。 friend Complex operator(Complexamp。c1,Complexamp。 } Complex operator+(double d,Complexamp。c2) //復(fù)數(shù) 復(fù)數(shù) { return Complex(,)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1