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

正文內(nèi)容

第7章類和對(duì)象-wenkub

2022-11-04 15:03:42 本頁面
 

【正文】 構(gòu)函數(shù)沒有參數(shù) , 不能指定類型說明 。 public: Point (double a , double b) : x (a) , y (b) { cout “Constructer called . “endl 。 在定義對(duì)象 a1的同時(shí)類A的構(gòu)造函數(shù)自動(dòng)地被系統(tǒng)調(diào)用執(zhí)行 , 給私有數(shù)據(jù)成員 a 賦初值 10。 public: A ( ) { a =10 。 } }。 if(h0) hour=0。 else second=s。 ( 4) 程序中不能直接調(diào)用構(gòu)造函數(shù) , 構(gòu)造函數(shù)是在創(chuàng)建對(duì)象時(shí)由系統(tǒng)自動(dòng)調(diào)用的 。 ( 2) 構(gòu)造函數(shù)是特殊的內(nèi)聯(lián)函數(shù) 。 } 如果調(diào)用這個(gè)成員函數(shù)時(shí)不給出實(shí)參,就可以把點(diǎn)設(shè)置為坐標(biāo)原點(diǎn)。 } } 。 } double GetImage( ) { return image 。 double image 。第一種方式是在類定義的說明部分只給出成員函數(shù)的原型,成員函數(shù)體在類的外部,即類的實(shí)現(xiàn)部分定義。 內(nèi)聯(lián)函數(shù)用關(guān)鍵字 inline說明 , 一般格式為: inline 返回值類型 函數(shù)名 ( 〈 參數(shù)表 〉 ) 用關(guān)鍵字 inline說明的內(nèi)聯(lián)函數(shù)稱為顯式定義的內(nèi)聯(lián)函數(shù)。 本質(zhì)上,成員函數(shù)是程序算法的實(shí)現(xiàn)載體。 不能在類的說明部分給類的數(shù)據(jù)成員賦初值 , 例如在點(diǎn)類的定義中 , 下面的定義是錯(cuò)的: Class Point{ int x=0 , y=0。 類中的數(shù)據(jù)成員可以是任何數(shù)據(jù)類型。} void Point :: Print( ) //定義成員函數(shù) Print( ) { cout”X=” x ”,” “Y=” y endl 。 }; void Point :: SetPoint (double a , double b) //定義成員函數(shù) SetPoint( ) { x = a 。 公有成員往往是一些操作 ( 即成員函數(shù) ) , 可在程序中類的外部訪問它們 , 它們是類的對(duì)外接口 。 封裝性來自對(duì)類成員的訪問控制權(quán)限 。 即說明部分告訴類要 “ 干什么 ” , 實(shí)現(xiàn)部分告訴類 “ 怎么干 ” 。 類說明部分 是用來聲明該類中的成員 。 類的成員包括數(shù)據(jù)成員和函數(shù)成員 。 1.類說明部分 類說明部分一般格式如下: class 類名 { private:(或缺省時(shí) ) 數(shù)據(jù)成員聲明或函數(shù)成員的原型; protected: 數(shù)據(jù)成員聲明或函數(shù)成員的原型; public: 數(shù)據(jù)成員聲明或函數(shù)成員的原型; }; 2.類實(shí)現(xiàn)部分 類的實(shí)現(xiàn)部分 , 包括所有在類體中說明的成員函數(shù)的定義 。 在 C++中, 類的成員從訪問權(quán)限上分為私有 ( private) 、公有 ( public) 和保護(hù) ( protected) 三類 。 3.類封裝和數(shù)據(jù)隱藏 例: 點(diǎn)類Point的定義 class Point{ private: double x , y ; public: void SetPoint(double x , double y) 。 y = b。} 類實(shí)現(xiàn)部分: 類說明部分: 定 義類 時(shí)說 明部 分中 的關(guān) 鍵字 public 、 private 、protected從它們出現(xiàn)的位置起開始生效 , 直到出現(xiàn)另一個(gè)訪問權(quán)限關(guān)鍵字為止 。例如整型、浮點(diǎn)型、字符型、數(shù)組、指針和引用等, 但不能用自動(dòng)( auto)、寄存器( register)或外部的( extern)進(jìn)行說明。 public: ┆ }。 ( 1) 內(nèi)聯(lián)函數(shù) 內(nèi)聯(lián)函數(shù)是特殊的 C++函數(shù) , 類似于宏指令 , 它直接在調(diào)用處插入函數(shù)體中的代碼 , 而不進(jìn)行一般函數(shù)的調(diào)用操作 。在許多情況下內(nèi)聯(lián)函數(shù)是隱式定義的。第二種方式是將成員函數(shù)定義在類體內(nèi),即定義為內(nèi)聯(lián)函數(shù)。 public: void SetRealImage (double r , double i ) { real = r 。 } double GetMagnitude ( ) { double t 。 普通函數(shù)可以帶缺省形參值 , 類的成員函數(shù)的形參也可以設(shè)置缺省值 , 其定義方法和調(diào)用規(guī)則與普通函數(shù)相同 。 ( 3) 設(shè)置成員函數(shù)參數(shù)的缺省值 構(gòu)造函數(shù)是一種特殊的成員函數(shù) , 其功能是在創(chuàng)建對(duì)象時(shí) , 使用給定的值對(duì)對(duì)象進(jìn)行初始化 。 有隱含的返回值 , 該值由系統(tǒng)內(nèi)部使用 。 構(gòu)造函數(shù)和析構(gòu)函數(shù) 構(gòu)造函數(shù) class Clock { int hour, minute, second。 if(m0) minute=0。 if (h=24) hour=h%24。 void main() { Clock aClock(100,100,200)。 cout” initialized … ”endl 。 注意:不能用以下方式創(chuàng)建 A類對(duì)象 A a1()。 } … }; 析構(gòu)函數(shù) 析構(gòu)函數(shù)也是一種特殊的成員函數(shù) ,其功能與構(gòu)造函數(shù)的功能正好相反 , 用來釋放一個(gè)對(duì)象 。 [3] 一個(gè)類中只能有一個(gè)析構(gòu)函數(shù) , 這一點(diǎn)與構(gòu)造函數(shù)不同 。 public: Point (double a , double b) // 構(gòu)造函數(shù) { x = a 。} // 析構(gòu)函數(shù) double GetX ( ) {return x 。 void main ( ){ double a, b ,c。 a = ( ) ( ) 。 } 執(zhí)行該程序后,輸出結(jié)果如下: Constructor called. Constructor called. The point is : (3,4) The point is : (2,3) The distance between point1 and point2 is : The destructor is called. The destructor is called. 缺省構(gòu)造函數(shù)和缺省析構(gòu)函數(shù) 在實(shí)際應(yīng)用中,通常需要給每個(gè)類定義構(gòu)造函數(shù)。當(dāng)實(shí)例化該類對(duì)象沒有指明參數(shù)時(shí),編譯系統(tǒng)便按無參構(gòu)造函數(shù)來初始化該對(duì)象。 正像定義 int 類型的變量一樣 , 創(chuàng)建類類型 Point 的對(duì)象也被看作定義 Point 類型的變量 。只要建立對(duì)象,構(gòu)造函數(shù)馬上就被調(diào)用,進(jìn)行實(shí)例化和初始化工作。 p1 . y 。 對(duì)象的生存期 特別值得一提的是全局對(duì)象的定義 。 然后才是 main()函數(shù)的定義 。當(dāng)一個(gè)類的成員是某個(gè)類的對(duì)象時(shí),該成員叫做類的對(duì)象成員。 public: … }。 include class A{ int a1,a2。} }。} void printB ( )。 } 在類 B的成員也可以用初始化列表的方法來初始化: class B{ A a。 void B::printB( ){ ( )。 public: B(int i,int j,int k):a(k,j) { b1=i。 coutb1endl。 p2=amp。 不同的對(duì)象變量可以自己的數(shù)據(jù)成員和函數(shù)成員 。 cout”Constructor called.”endl。 //定義類 Exe的對(duì)象 obj和類 Exe的對(duì)象的指針 p ( )。 //用指針 p引用對(duì)象成員函數(shù) print( ) } 程序運(yùn)行結(jié)果為: Constructor called. x=3 y=4 x=3 y=4 this指針 this指針是一個(gè)隱含于每一個(gè)類的成員函數(shù) ( 包括構(gòu)造函數(shù)和析構(gòu)函數(shù) ) 中的特殊指針 , 用來指向正在被某個(gè)成員函數(shù)操作的對(duì)象 。 public: A( ) {a = 0 。} void print( ) {couta”,”bendl 。 ( )。a1) 。而將成員函數(shù) print()轉(zhuǎn)換成如下形式: void print( A *this) { coutthisa”, ”this b endl 。引用名 =對(duì)象名; 例如: Point A; //定義類 Point的對(duì)象 A Point amp。 定義 p是類 Point的對(duì)象的引用 , 初始化為引用 Point對(duì)象 A, 這里要求 A已經(jīng)有定義 , 而引用 p僅僅是它的別名 。 public: M( ){x = y = 0 。 y = j 。 // 定義類 M的對(duì)象 p M amp。 // 通過對(duì)象引用 q調(diào)用成員函數(shù) (10,15)。 從程序輸出結(jié)果中可看出:對(duì) q的操作實(shí)際上是對(duì) p的操作 。 因此函數(shù)中對(duì)對(duì)象的任何修改均不影響調(diào)用函數(shù)的對(duì)象本身 。} int Geta( ) {return a。 } void main( ) { A r(10)。 因?yàn)槭褂脤?duì)象指針作函數(shù)參數(shù)有如下兩點(diǎn)好處: ( 1) 實(shí)現(xiàn)傳址調(diào)用 。 include class A{ int x,y。} void copy( A * p) { x = px 。} void print( ) {coutx”,”yendl 。 } 例 對(duì)象指針作函數(shù)參數(shù) void main() { A a(3,4),b。 ()。b對(duì)應(yīng)于對(duì)象指針形參 ()。 include class A{ int x,y。} void copy( A amp。 y = j 。a2) //第一個(gè)形參是對(duì)象 ,第二個(gè)形參是對(duì)象引用 { (5,6)。 ( )。 ( )。 只是賦初值和賦值的方法不同于普通數(shù)組 。} Date ( int y , int m , int d ) {year = y 。 } 。 for(int i=0 。 public: Point(){x = y = 0 。 }。i++) // 通過雙重 for循環(huán)給 point對(duì)象數(shù)組各元素賦值 for(int j=0。 //定義一個(gè)指向一維對(duì)象數(shù)組的指針 p, //并用數(shù)組名 point進(jìn)行初始化 , 使指針 p指向數(shù)組 point for( i=0。j++) (*(*(p+i)+j)).print()。 include class A{ int a,b。 b = y 。 A *pa[3]={ amp。 for(int i=0。 其聲明格式如下: 類名 *數(shù)組名 [下標(biāo) ]… 在內(nèi)存的堆區(qū)中創(chuàng)建和刪除對(duì)象 , 使用 new運(yùn)算符和 delete運(yùn)算符 。 ptr = new Point(, )。所以通常在每次 new 操作后應(yīng)寫一段程序檢查 new 是否成功 : Point* ptr。 pc = new Complex [10] 。 使用 new運(yùn)算符創(chuàng)建對(duì)象數(shù)組時(shí) ,不能為該
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1