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

正文內(nèi)容

c多態(tài)性課件講座-資料下載頁

2025-09-30 16:41本頁面
  

【正文】 例 5. 16運(yùn)算符“()的重載。 include class myclass{ int i。 float j。 public: myclass(int x=0,float y=0) { I=x。 j=y。 } myclass operator( )( int k, float m )。 //聲明重載運(yùn)算符“()”函數(shù) void display() { coutI‖ j\n。 } }。 myclass myclass::operator( )(int k,float m) //定義運(yùn)算符“()”函數(shù) { i=i*k。 j=j*m。 //把 myclass的對象中的 i放大 k倍, j放大 m倍。 return *this。 } 62 void main() { myclass obj1(10,)。 ()。 obj1(10,100)。 //重載運(yùn)算符“()”的調(diào)用,可解 // 釋為 ()(10,.100) ()。 } 程序運(yùn)行結(jié)果為: 10 100 說明:函數(shù)調(diào)用運(yùn)算符“()”必須重載為一個成員函數(shù) 63 類型轉(zhuǎn)換 系統(tǒng)預(yù)定義類型間的轉(zhuǎn)換 類型轉(zhuǎn)換是將一種類型的值轉(zhuǎn)換為另一種類型值 。 對于系統(tǒng)預(yù)定義類型 , C++提供兩種類型轉(zhuǎn)換方式 , 一種是隱式類型轉(zhuǎn)換 (或稱標(biāo)準(zhǔn)類型轉(zhuǎn)換 ), 另一種是顯式類型轉(zhuǎn)換 。 (1) 隱式類型轉(zhuǎn)換 隱式類型轉(zhuǎn)換主要遵循以下規(guī)則 : ① 在賦值表達(dá)式 A=B的情況下 , 賦值運(yùn)算符右端 B的值需轉(zhuǎn)換為 A 類型后進(jìn)行賦值。 ②當(dāng) char或 short類型變量與 int 類型變量進(jìn)行運(yùn)算時 , 將 char或short 類型轉(zhuǎn)換成 int 類型。 ③當(dāng)兩個操作對象類型不 .一致時 , 在算術(shù)運(yùn)算前 , 級別低的自動轉(zhuǎn)換為級別高的類型 。 64 (2) 顯式類型轉(zhuǎn)換 顯式類型常用下述方法表示 : ① 強(qiáng)制轉(zhuǎn)換法 強(qiáng)制轉(zhuǎn)換法的格式為:(類型名)表達(dá)式 例如: int i, j // ………… cout(float)(i+j)。 將整數(shù) i+j的值強(qiáng)制轉(zhuǎn)換成 float型后輸出。 ② 函數(shù)法 函數(shù)法函數(shù)法的轉(zhuǎn)換格式為: 類型名(表達(dá)式) 在上面的例子中,若采用函數(shù)法則變?yōu)椋? int i, j。 //………… coutfloat(i+j) 此時也將 I+j的值強(qiáng)制轉(zhuǎn)換成 float型后輸出。 65 類類型與系統(tǒng)預(yù)定義類型間的轉(zhuǎn)換 前面介紹的是一般數(shù)據(jù)類型之間的轉(zhuǎn)換。那么,對于用戶自己定義的類類型來講,如何實(shí)現(xiàn)它們與其它數(shù)據(jù)類型之間的轉(zhuǎn)換呢?通常,可歸納為以下二種方法: 即 (1)通過 構(gòu)造函數(shù), (2)通過 類型轉(zhuǎn)換函數(shù) 。 1. 通過構(gòu)造函數(shù)進(jìn)行類型轉(zhuǎn)換 構(gòu)造函數(shù)具有類型轉(zhuǎn)換的作用,它將 其他類型的值裝換為它所在類的類型的值 。 66 例 5. 17 include class example{ private: int num。 public: example(int)。 void print ()。 }。 example::example(int n) //由 int型向 example類類型的轉(zhuǎn)換。 { num=n。 coutInializing with :numendl。 } void example::print() { coutnum=numendl。 } 在類 example中有一個參數(shù)為 int 的構(gòu)造函數(shù) example(int),此構(gòu)造函數(shù)可以用來進(jìn)行類型轉(zhuǎn)換,即完成由 int型向 example類類型的轉(zhuǎn)換。 67 void main() { example X=example(3)。 ① ()。 cout————————\n。 example Y=6。 ② ()。 } 程序執(zhí)行結(jié)果如下: Intializing with:3 Num=3 ———————— Intializing with:6 num=6 Main ()函數(shù)中的語句①將整數(shù)3轉(zhuǎn)換為類類型 example后賦給對象X,若沒有 example(int)構(gòu)造函數(shù) ,此語句將是被禁止的。語句②將6轉(zhuǎn)換為類類型 example后賦給對象Y,轉(zhuǎn)換也是通過構(gòu)造函數(shù)example( int)完成的。 68 2. 通過類型轉(zhuǎn)換函數(shù)進(jìn)行類型轉(zhuǎn)換 通過構(gòu)造函數(shù)可以進(jìn)行類型轉(zhuǎn)換,但是它的轉(zhuǎn)換功能受到限制。它只能從基本類型(如 int,float等)向類類型轉(zhuǎn)換,而想將一個類類型向基本類型轉(zhuǎn)換是辦不到的。 類型轉(zhuǎn)換函數(shù)則可以用來把源類類型轉(zhuǎn)換成另一種目的類型 。它是一種類似顯式類型轉(zhuǎn)換的機(jī)制。在類中,類型轉(zhuǎn)換函數(shù)定義的一般格式為: class 源類類名 { //………… operator 目的類型 ( ) { //………… return 目的類型的數(shù)據(jù); } }; 其中源類類名為要轉(zhuǎn)換的源類類型,目的類型為要轉(zhuǎn)換成的類型,它既可以是自定義類型也可是基本類型。 使用類型轉(zhuǎn)換函數(shù)的方法與對基本類型強(qiáng)制轉(zhuǎn)換一樣,例如: X obj。 int(obj) 69 關(guān)于類類型轉(zhuǎn)換函數(shù),有以下幾點(diǎn)說明: (1)類型轉(zhuǎn)換函數(shù)只能定義為一個類的成員函數(shù)而不能定義為類的友元函數(shù)。類型轉(zhuǎn)換函數(shù)與普通的成員函數(shù)一樣,也可以在類定義體中聲明函數(shù)聲明,而將函數(shù)體定義在類外部。 (2)這個函數(shù)既沒有參數(shù),也不顯式給出返回類型。 (3)在函數(shù)體中必須返回具有目的類型的一個數(shù)據(jù)。 (4)在一個類中可以定義多個類型轉(zhuǎn)換函數(shù)。C++編譯器將根據(jù)操作數(shù)的類型自動的選擇一個合適的類型轉(zhuǎn)換函數(shù)之匹配。當(dāng)在可能出現(xiàn)二義性的情況下,應(yīng)顯式的使用類型轉(zhuǎn)換函數(shù)進(jìn)行類型轉(zhuǎn)換。 70 例5 .18 include class plex{ private: float real, imag。 public: plex(float r=0, float i=0) { real=r。 imag=i。 coutConstructing… \n。 } operator float()//把 plex類對象的實(shí)部轉(zhuǎn)換成普通的實(shí)數(shù) { coutType changed to float… \n。 return real。 } operator int() //把 plex類對象的實(shí)部轉(zhuǎn)換成普通的整數(shù) { cout39。Type changed to int … \n。 return int (real)。 } 71 void print() { cout39。(39。real39。,39。imag39。)39。endl。 } }。 void main() { plex A(, )。 ()。 coutfloat(A)*endl。 plex B(4, 6)。 ()。 coutint(B)*2endl。 } 程序運(yùn)行結(jié)果如下: constructing …… (,) Type changed to float…… Type changed to int…… 8 在以上程序中,兩次調(diào)用了類型轉(zhuǎn)換函數(shù)。第一次采用顯式調(diào)用的方式,將類 plex的對象A轉(zhuǎn)換成float類型。第二次采用顯式調(diào)用的方式 ,將類 plex的對象B轉(zhuǎn)換成 int 類型。 72 類型轉(zhuǎn)換函數(shù)還可以作某些運(yùn)算再轉(zhuǎn)換,例如下列程序中通過real+image運(yùn)算,使類 plex的對象 實(shí)部虛部之和轉(zhuǎn)換成整數(shù) 。 例 include class plex{ private: float real, imag。 public: plex(float r,float i) { real=r。 imag=i。 cout ―Constructing...\n‖。 } plex(int i=0) //整數(shù)轉(zhuǎn)換成對象成員的構(gòu)造函數(shù) { real=imag=i/2。 } opeator int() //對象實(shí)部虛部之和,轉(zhuǎn)換成整數(shù) { cout―Type changed to int ...\n‖。 return real+imag。 } 73 void print() {cout ―real:‖real―\t‖―imag:‖imagendl。 } }。 void main( ) { plex a1(1,2),a2(3,4)。 ( )。 ( )。 plex a3= a1+a2。 // a1, a2先轉(zhuǎn)換成整數(shù): 1+2=3, 3+4=7, // 再通過整數(shù)轉(zhuǎn)換成對象成員的構(gòu)造函數(shù) , 賦給 a3 ( )。 } 程序運(yùn)行結(jié)果如下: Construcing... Construcing... real: 1 imag: 2 real: 3 imag: 4 Type changed to int ... Type changed to int ... real: 5 imag:5 74 虛函數(shù) 虛函數(shù) 是一種動態(tài)的 重載方式,虛函數(shù)允許函數(shù)調(diào)用與函數(shù)體之間的聯(lián)系在運(yùn)行時才建立,也就是在運(yùn)行時才決定如何動作,即所謂 動態(tài)聯(lián)編。 引入派生類后,由于派生類是由基類派生出來的,因此指向基類的指針和指向派生類的指針是相關(guān)的。 例 include class my_base{ //定義基類 int a,b。 public: my_base(int x, int y) { a=x。 b=y。 } //基類的構(gòu)造函數(shù) void show( ) { cout ―基類 my_base\n‖。 cout a― ―bendl。 } }。 75 接 1 例 class my_class:public my_base{ //定義 派生類 int c。 public: my_class(int x, int y,int z):my_base(x,y) { c=z。 } //派生類 的構(gòu)造函數(shù) void show( ) { cout ―派生類 my_class\n‖。 cout ―c=―cendl。 } }。 Void main( ) { my_base mb(50,50), *mp。 my
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1