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

正文內(nèi)容

第7章類和對(duì)象-在線瀏覽

2024-12-27 15:03本頁面
  

【正文】 述形式的缺省構(gòu)造函數(shù): Complex :: Complex() {} 用缺省構(gòu)造函數(shù)進(jìn)行對(duì)象初始化時(shí),將對(duì)象的所有數(shù)據(jù)成員都初始化為零或空。可以由程序員在類中自行定義不帶參數(shù)的構(gòu)造函數(shù)。 同理 , 如果一個(gè)類中沒有定義析構(gòu)函數(shù) , 則編譯系統(tǒng)也自動(dòng)生成一個(gè)缺省的析構(gòu)函數(shù) , 因?yàn)槊總€(gè)類必須有一個(gè)析構(gòu)函數(shù) 。 例如 , 編譯系統(tǒng)為 Complex類生成的缺省析構(gòu)函數(shù)如下: Complex :: ~Complex ( ) { } 類描述了對(duì)象的數(shù)據(jù)存儲(chǔ)和操作特性 , 對(duì)象是類的實(shí)例 。 對(duì)象在它的類確定了以后 , 定義格式為: 類名 對(duì)象名表 例如 , 定義 (或者說創(chuàng)建 )兩個(gè)點(diǎn)類 Point 的對(duì)象: Point p1 , p2 ( , ) 。 例如 , 一個(gè)復(fù)數(shù)類 Complex的對(duì)象可以如下定義: Complex c1, c2, *pc, c[10]; 對(duì)象的定義 對(duì)象的定義 對(duì)象的存儲(chǔ)和訪問 real image real image c1 c2 對(duì)象的存儲(chǔ) C++建立和初始化對(duì)象的過程是由該類的構(gòu)造函數(shù)來完成的。 對(duì)象的實(shí)例化是指給對(duì)象的數(shù)據(jù)成員分配存儲(chǔ)單元,對(duì)象的初始化是指給對(duì)象的數(shù)據(jù)成員賦初值的過程。 訪問格式為: 對(duì)象名 . 數(shù)據(jù)成員名 或 對(duì)象名 .成員函數(shù)名 ( 〈 實(shí)參表 〉 ) 如:類 Point的對(duì)象的成員的訪問如下: Point p1 ; // 定義 Point類對(duì)象 p1 p1 . x 。 // 訪問 p1對(duì)象的 x成員和 y成員 p1 . print( ) 。 而且對(duì)象作用域和生命期的規(guī)定基本上完全相同 ,區(qū)別在于對(duì)象在生命期開始時(shí)調(diào)用構(gòu)造函數(shù) , 在生命期結(jié)束時(shí)調(diào)用析構(gòu)函數(shù) 。 全局對(duì)象是在main()函數(shù)之外定義的對(duì)象 , 全局對(duì)象可以直接在類定義的同時(shí)定義 , 如: class Clock{ … 。 也可單獨(dú)定義 , 如: Clock now。 全局對(duì)象的構(gòu)造函數(shù)在 main()函數(shù)執(zhí)行之前被調(diào)用 ,析構(gòu)函數(shù)在 main()函數(shù)執(zhí)行到最后的花括號(hào) ( 即程序退出 ) 時(shí)被調(diào)用 。 類的對(duì)象成員 1. 對(duì)象成員的定義 類的數(shù)據(jù)成員的類型可以是任意類型,例如,簡(jiǎn)單類型或自定義類型,也可以是另一個(gè)類對(duì)象。 class A { private: … public: … }。 int b1,b2。 2. 對(duì)象成員的初始化 在類中出現(xiàn)對(duì)象成員時(shí) , 該類的構(gòu)造函數(shù)要包含對(duì)對(duì)象成員的初始化 ,通常采用成員初始化列表的方法來初始化對(duì)象成員 ( 即子對(duì)象 ) 。 它們按參數(shù)名對(duì)應(yīng) 。 public: A(int i,int j){ a1=i。 } void printA( ){ couta1”,”a2endl。 class B{ A a。 public: B(int i,int j,int k):a(k,j) { b1=i。 }。 coutb1endl。 int b1。 }。 coutb1endl。 int b1。} void printB ( )。 void B::printB( ){ ( )。 } 指向?qū)ο蟮闹羔樅蛯?duì)象的引用 指向?qū)ο蟮闹羔? 定義對(duì)象指針的一般語法格式為: 類名 *對(duì)象指針變量名 例如: Point point1 , point2 。point1 。point2 。 對(duì)象指針的定義和使用遵循一般變量指針的各種規(guī)則 。 用指向?qū)ο蟮闹羔榿碓L問對(duì)象的成員 , 訪問方式如下: 對(duì)象指針 —數(shù)據(jù)成員名 或者:對(duì)象指針 —成員函數(shù)名 ( 〈 參數(shù)表 〉 ) 例 用對(duì)象指針訪問對(duì)象成員 include class Exe{ int x, y。 y = b 。 } void print( ) { cout”x=”x” y=”yendl。 void main() { Exe obj(3,4),*p。 // 引用對(duì)象成員函數(shù) print( ) p=amp。 // 將指針 p指向?qū)ο?obj pprint( )。 當(dāng)通過一個(gè)對(duì)象調(diào)用成員函數(shù)時(shí) , 編譯程序先將對(duì)象的地址賦給 this指針 , 然后調(diào)用成員函數(shù) , 每次成員函數(shù)存取數(shù)據(jù)成員時(shí) , 則隱含使用 this指針 。 分析右邊程序,觀察程序中 this和 *this的用法 include class A { int a , b。 b = 0 。 b = j 。 } } 。 ( )。 } 執(zhí)行該程序 , 輸出結(jié)果如下: 0, 0 1, 3 分析:編譯程序?qū)⒄{(diào)用語句: () 。 轉(zhuǎn)換成如下形式: print (amp。 print (amp。 將對(duì)象的地址作為第一個(gè)參數(shù)傳遞給成員函數(shù)。} 通常不顯式地使用 this指針來引用成員數(shù)據(jù)。 對(duì)象的引用 對(duì)象引用的定義格式為: 類名 amp。p = A 。 為對(duì)象建立引用時(shí) , 程序中應(yīng)該用另一個(gè)對(duì)象的名字來初始化它 , 自此 , 引用作為目標(biāo)對(duì)象的別名 , 對(duì)引用的改動(dòng) , 實(shí)際上就是對(duì)目標(biāo)對(duì)象的改動(dòng) 。 引用不是值,不占存儲(chǔ)空間,定義引用時(shí),目標(biāo)對(duì)象的存儲(chǔ)不會(huì)改變。 include class M{ int x , y 。} M(int i ,int j){ x = i。} void Setxy(int i, int j){ x = i 。} void print( ){coutx”,”yendl。 void main( ){ M p(3, 4)。q = p 。 // 通過對(duì)象調(diào)用成員函數(shù) ( ) 。 //通過對(duì)象引用 q調(diào)用成員函數(shù) ( )。 } 程序輸出: 3, 4 3, 4 10, 15 10, 15 說明:類 M的對(duì)象 p和 p的引用 q。 因此: (10,15) 等價(jià)于 (10,15)。 在向函數(shù)傳遞對(duì)象時(shí) , 是通過傳值調(diào)用傳遞給函數(shù)的 , 也就是說把對(duì)象的拷貝而不是對(duì)象本身傳給函數(shù) 。 include class A{ int a 。} void Seta(int n) { a = n 。} }。 cout”the copy of ob has a value of:”( )endl。 // 定義類 A的對(duì)象 Sqra( r )。 } 例 :對(duì)象名作函數(shù)參數(shù) 執(zhí)行程序 , 輸出結(jié)果如下: the copy of ob has a value of: 100 the value of the r has a value of : 10 (2 ) 對(duì)象指針作函數(shù)參數(shù) 同其它類型變量一樣 , 也可以將對(duì)象地址傳遞給函數(shù) , 即使用對(duì)象指針作為函數(shù)形參 , 并且這比使用對(duì)象作函數(shù)參數(shù)更普遍一些 。 可在被調(diào)用函數(shù)中改變調(diào)用函數(shù)的參數(shù)對(duì)象的值 , 實(shí)現(xiàn)對(duì)象之間的信息傳遞 。 對(duì)象指針作函數(shù)形參時(shí) , 要求調(diào)用函數(shù)的實(shí)參是對(duì)象的地址值 。 public: A( ) {x = y = 0 。 y = j 。 y = py 。 y = j 。} }。 a2Setxy(2,5)。 (amp。 ()。 f(a, amp。 //實(shí)參對(duì)象 a對(duì)應(yīng)于對(duì)象形參a1,對(duì)象 b的地址 amp。 ()。 使用對(duì)象引用作函數(shù)參數(shù)要比使用對(duì)象指針作函數(shù)參數(shù)更普遍 。 public: A( ) {x = y = 0 。 y = j 。 p) { x = 。} //對(duì)象引用作成員函數(shù) copy( )的形參 void Setxy( int i, int j) {x = i 。} void print( ) {coutx”,”yendl 。 void f (A a1, A amp。 (2,5)。 (a)。 ( )。 //實(shí)參對(duì)象 a對(duì)應(yīng)于對(duì)象形參 a1,實(shí)參對(duì)象 b對(duì)應(yīng)于對(duì)象引用形參 ( )。 } 運(yùn)行結(jié)果如下: 3,4 3,4 3,4 2,5 對(duì)象數(shù)組 (1) 對(duì)象數(shù)組的定義 對(duì)象數(shù)組是指數(shù)組元素為對(duì)象的數(shù)組 。 對(duì)象數(shù)組的定義格式為: 類名 數(shù)組名 [下標(biāo) 1][下標(biāo) 2]… 其中,類名指出該數(shù)組元素對(duì)象所屬的類,例如: Point point1[5]; Point point2[2][3] ; 與普通類型數(shù)組一樣 , 對(duì)象數(shù)組可以在定義時(shí)賦初值 , 也可以在程序中被賦值 。 下面是一個(gè)對(duì)象數(shù)組定義和賦值的例子 。 public: Date ( ) {year = month = day = 0 。 month = m 。} void print ( )。 void main( ){ Date dates[4]={Date(2020,11,8), Date(1999,10 ,12) }。 dates[3]=Date(1999,9,10) 。 i4 。 } 的賦值 class Point{ int x,y。} Point(int a,int b){x = a 。} void print()。 void main() { Point point[2][3]。i2。j3。 Point (*p)[3](point)。i2。j3。 coutendl。 //pd是指向一維對(duì)象數(shù)組的指針 , 該數(shù)組元素是 Date類的對(duì)象 。 public: A(){ a=0。 } A(int x, int y){ a = x 。 } void print( ) { couta, bendl。 void main( ) { A a1(3,4), a2(8,9), a3。a1, amp。a3 }。 i3 。 } (3) 對(duì)象指針數(shù)組 執(zhí)行該程序輸出如下: 3, 4 8, 9 0, 0 對(duì)象指針數(shù)組的所有元素都是指向同一個(gè)類的對(duì)象的指針 。 用 new運(yùn)算符動(dòng)態(tài)創(chuàng)建對(duì)象的語法格式為: 對(duì)象指針 = new 類名 ( 初始值列表 ) ; 該語句在程序運(yùn)行過程中調(diào)用類的構(gòu)造函數(shù)為對(duì)象的數(shù)據(jù)成員分配內(nèi)存空間并為它們賦初值 , 然后返回一個(gè)指向新創(chuàng)建對(duì)象的指針 。 例如: Point* ptr。 全局?jǐn)?shù)據(jù)區(qū) 代碼區(qū) 堆區(qū) 棧區(qū) C++ 的內(nèi)存布局 動(dòng)態(tài)對(duì)象 由于用 new 分配內(nèi)存不一定總能成功,比如沒有足夠的內(nèi)存空間或供分配等。如果沒有注意到 new操作失敗而去使用對(duì)象指針將會(huì)發(fā)生無法估計(jì)的后果。 ptr = new Point(, )。 //內(nèi)存分配成功的后續(xù)正常處理 } 對(duì)象指針 =new 類名 [下標(biāo) ] //創(chuàng)建對(duì)象數(shù)組 例如:用 new運(yùn)算符創(chuàng)建類 Complex的對(duì)象數(shù)組: Complex *pc 。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1