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

正文內(nèi)容

第7章類和對象(完整版)

2024-12-11 15:03上一頁面

下一頁面
  

【正文】 ic: A ( ) { a =10 。 if(h0) hour=0。 ( 4) 程序中不能直接調(diào)用構造函數(shù) , 構造函數(shù)是在創(chuàng)建對象時由系統(tǒng)自動調(diào)用的 。 } 如果調(diào)用這個成員函數(shù)時不給出實參,就可以把點設置為坐標原點。 } double GetImage( ) { return image 。第一種方式是在類定義的說明部分只給出成員函數(shù)的原型,成員函數(shù)體在類的外部,即類的實現(xiàn)部分定義。 本質(zhì)上,成員函數(shù)是程序算法的實現(xiàn)載體。 類中的數(shù)據(jù)成員可以是任何數(shù)據(jù)類型。 }; void Point :: SetPoint (double a , double b) //定義成員函數(shù) SetPoint( ) { x = a 。 封裝性來自對類成員的訪問控制權限 。 類說明部分 是用來聲明該類中的成員 。 1.類說明部分 類說明部分一般格式如下: class 類名 { private:(或缺省時 ) 數(shù)據(jù)成員聲明或函數(shù)成員的原型; protected: 數(shù)據(jù)成員聲明或函數(shù)成員的原型; public: 數(shù)據(jù)成員聲明或函數(shù)成員的原型; }; 2.類實現(xiàn)部分 類的實現(xiàn)部分 , 包括所有在類體中說明的成員函數(shù)的定義 。 3.類封裝和數(shù)據(jù)隱藏 例: 點類Point的定義 class Point{ private: double x , y ; public: void SetPoint(double x , double y) 。} 類實現(xiàn)部分: 類說明部分: 定 義類 時說 明部 分中 的關 鍵字 public 、 private 、protected從它們出現(xiàn)的位置起開始生效 , 直到出現(xiàn)另一個訪問權限關鍵字為止 。 public: ┆ }。在許多情況下內(nèi)聯(lián)函數(shù)是隱式定義的。 public: void SetRealImage (double r , double i ) { real = r 。 普通函數(shù)可以帶缺省形參值 , 類的成員函數(shù)的形參也可以設置缺省值 , 其定義方法和調(diào)用規(guī)則與普通函數(shù)相同 。 有隱含的返回值 , 該值由系統(tǒng)內(nèi)部使用 。 if(m0) minute=0。 void main() { Clock aClock(100,100,200)。 注意:不能用以下方式創(chuàng)建 A類對象 A a1()。 [3] 一個類中只能有一個析構函數(shù) , 這一點與構造函數(shù)不同 。} // 析構函數(shù) double GetX ( ) {return x 。 a = ( ) ( ) 。當實例化該類對象沒有指明參數(shù)時,編譯系統(tǒng)便按無參構造函數(shù)來初始化該對象。只要建立對象,構造函數(shù)馬上就被調(diào)用,進行實例化和初始化工作。 對象的生存期 特別值得一提的是全局對象的定義 。當一個類的成員是某個類的對象時,該成員叫做類的對象成員。 include class A{ int a1,a2。} void printB ( )。 void B::printB( ){ ( )。 coutb1endl。 不同的對象變量可以自己的數(shù)據(jù)成員和函數(shù)成員 。 //定義類 Exe的對象 obj和類 Exe的對象的指針 p ( )。 public: A( ) {a = 0 。 ( )。而將成員函數(shù) print()轉(zhuǎn)換成如下形式: void print( A *this) { coutthisa”, ”this b endl 。 定義 p是類 Point的對象的引用 , 初始化為引用 Point對象 A, 這里要求 A已經(jīng)有定義 , 而引用 p僅僅是它的別名 。 y = j 。 // 通過對象引用 q調(diào)用成員函數(shù) (10,15)。 因此函數(shù)中對對象的任何修改均不影響調(diào)用函數(shù)的對象本身 。 } void main( ) { A r(10)。 include class A{ int x,y。} void print( ) {coutx”,”yendl 。 ()。 include class A{ int x,y。 y = j 。 ( )。 只是賦初值和賦值的方法不同于普通數(shù)組 。 } 。 public: Point(){x = y = 0 。i++) // 通過雙重 for循環(huán)給 point對象數(shù)組各元素賦值 for(int j=0。j++) (*(*(p+i)+j)).print()。 b = y 。 for(int i=0。 ptr = new Point(, )。 pc = new Complex [10] 。 cout”Constructor called”endl。 語句時三次調(diào)用了析構函數(shù) 。因為無論建立多少個類的對象,都只有一個靜態(tài)數(shù)據(jù)成員的拷貝,即對多個對象來說,靜態(tài)數(shù)據(jù)成員只存儲一處,供所有對象共用。 int obj_ID。 void main() { counter ob1,ob2,ob3,ob4,ob5。 } double GetY( ) {return y 。 // 輸出對象序號 Point B(, )。靜態(tài)成員函數(shù)和靜態(tài)數(shù)據(jù)成員一樣,屬于類的靜態(tài)成員,而不屬于某個對象,由同一個類的所有對象共同維護,為這些對象所共有。 void A::fun(A a) { cout”x = “endl 。 例如 cout”y = “y。 Application ( ){}。 instance = new Application。 } 例:單實例對象模式 Application類的定義為私有的 , 只能通過公有成員函數(shù)init()間接訪問 。 coutcount=Application::countendl。 public: counter() { count++。 友元既可以是不屬于任何類的一般函數(shù) , 也可以是另一個類的成員函數(shù) , 還可以是整個的一個類 。 y = b 。p2)// 在類體外定義友元函數(shù) { double dx= 。 } 執(zhí)行程序,輸出: ( 3. 0, 4. 0) ( 6. 0, 8. 0) Distance is : 友元函數(shù)一般帶有一個本類對象作入口參數(shù) 。 static int y 。 // 友元類 Y的構造函數(shù)中訪問類 X的靜態(tài)私有數(shù)據(jù)成員 } void print ( ) 。 Y c (6 , 9)。 public: X( int a ,char *str) { x = a 。 public: Y( int b,char *str) { y = b 。 cout”the string of Y is:”endl 。ob) 。 } void print() { coutnameis age years old.endl。 ()。 void main(){ Member obj1( 35, Tom), obj2( 57, Johnson)。 對象的內(nèi)存映象 real image real image c1 c2 real image real image C[0] C[1] real image real image … C[9] Complex c1, c2, *pc, c[10]; 定義的 Complex類的對象內(nèi)存分配情況如右圖所示: 0X00F25D44 pc 類方法代碼在內(nèi)存代碼段中,只有一份拷貝,被該類 所有對象共享。 Y b(20 , “stringy”)。 strcpy(stry , str) 。 strcpy(strx,str) 。 ( )。 int X::y = 1 。 // 在類的私有部分說明類 Y是類 X的友元類 public: void set(int a) {x = a。 而必須通過作為入口參數(shù)傳遞進來的對象名 、 或者對象指針 、或者對象引用來訪問該對象的私有或保護成員 。 return sqrt(dx*dx+dy*dy) 。 } friend double distance(Point amp。 友元函數(shù) 友元函數(shù)不是本類的成員函數(shù) , 而是獨立于本類的外部函數(shù) , 本類允許友元函數(shù)通過對象名訪問它的私有和保護成員 。 } void show() { coutobj objnumber 。語句 , 則程序輸出: Single instance has created, OK!!! count=1 count=1 Can39。 ptr=Application::init()。 return instance。 ~Application ( )。 在類體外定義時 , 不要用 static前綴 。 } void main( ) { A P(6) , Q(8) 。 static int y 。 ( )。} void Print ( ) {coutThe point is : ( x , y) endl。 } class Point { double x , y 。 obj_ID=count。 靜態(tài)數(shù)據(jù)成員的初始化與一般數(shù)據(jù)成員的初始化不同 , 其格式如下: 數(shù)據(jù)類型 類名::靜態(tài)數(shù)據(jù)成員名 =值; 這表明: ( 1) 初始化是在類體外進行的 , 在類中不為它分配內(nèi)存空間 。 程序運行結(jié)果: Constructor called Constructor called Constructor called Destructor called Destructor called Destructor called 類的靜態(tài)成員 類的靜態(tài)成員是為了解決同一個類的不同對象的數(shù)據(jù)共享和函數(shù)共享問題 。} } 。 用 new創(chuàng)建對象數(shù)組 用 delete運算符刪除對象或?qū)ο髷?shù)組。此時 new 操作將返回一個空指針( NULL)。 i++) pa[i]print( )。 } }。 } } (2) 指向?qū)ο髷?shù)組的指針 指向?qū)ο髷?shù)組的指針定義格式為: 類名 ( *〈 指針名 〉 ) [下標說明 ] 例如: Date (*pd)[4] 。j++) point[i][j]=Point(i+10, j+15)。 y = b 。 dates[2]=Date (1998,8,9) 。 class Date { int year, month, day 。 f(a,b)。} }。} A(int i ,int j ) {x = i 。b)。 void f (A a1, A *a2) //第一個形參是對象 ,第二個形參是對象指針 { (5,6)。}
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1