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

正文內(nèi)容

第7章類和對象(文件)

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

下一頁面
 

【正文】 數(shù)組元素指定初始值 ,只能調(diào)用缺省參數(shù)構(gòu)造函數(shù) 。 cout”Constructor called”endl。 pd=new Date[3]。 語句時三次調(diào)用了析構(gòu)函數(shù) 。 靜態(tài)成員在類中有兩種情況 , 一是 靜態(tài)數(shù)據(jù)成員 , 一是 靜態(tài)函數(shù)成員 。因為無論建立多少個類的對象,都只有一個靜態(tài)數(shù)據(jù)成員的拷貝,即對多個對象來說,靜態(tài)數(shù)據(jù)成員只存儲一處,供所有對象共用。 ( 3) 初始化時必須使用作用域運算符::來表明它所屬的類 。 int obj_ID。 coutcount=count\n。 void main() { counter ob1,ob2,ob3,ob4,ob5。 public: Point (double a = 0, double b =0) { x = a 。 } double GetY( ) {return y 。 int Point :: count = 0 。 // 輸出對象序號 Point B(, )。 運行結(jié)果: Point A (, ) PointObject id = 1 Point B (, ) PointObject id = 2 說明:類 Point的數(shù)據(jù)成員 count被聲明為靜態(tài) , 用來給 Point類的對象計數(shù) , 靜態(tài)數(shù)據(jù)成員 count的定義和初始化在類外進行 。靜態(tài)成員函數(shù)和靜態(tài)數(shù)據(jù)成員一樣,屬于類的靜態(tài)成員,而不屬于某個對象,由同一個類的所有對象共同維護,為這些對象所共有。 y += x 。 void A::fun(A a) { cout”x = “endl 。 A::fun(Q)。 例如 cout”y = “y。 在一般成員函數(shù)中都隱含有一個 this指針 , 用來指向?qū)ο笞陨?, 而在靜態(tài)成員函數(shù)中是沒有 this指針的 , 因為它不與特定的對象相聯(lián)系 。 Application ( ){}。 }。 instance = new Application。t create more than one instance!!!endl。 } 例:單實例對象模式 Application類的定義為私有的 , 只能通過公有成員函數(shù)init()間接訪問 。 delete ptr。 coutcount=Application::countendl。 void main() { counter ob1,ob2,ob3,ob4,ob5。 public: counter() { count++。 } }。 友元既可以是不屬于任何類的一般函數(shù) , 也可以是另一個類的成員函數(shù) , 還可以是整個的一個類 。 友元說明語句可以放在類的公有部分 , 也可以放在類的私有部分 。 y = b 。p2) 。p2)// 在類體外定義友元函數(shù) { double dx= 。 A. print( ) 。 } 執(zhí)行程序,輸出: ( 3. 0, 4. 0) ( 6. 0, 8. 0) Distance is : 友元函數(shù)一般帶有一個本類對象作入口參數(shù) 。 當(dāng)類 A作為類 B的友元類時 ,類 A的所有成員函數(shù)都是類 B的友元函數(shù) , 都可以訪問類 B中的私有成員和保護成員 。 static int y 。 } }。 // 友元類 Y的構(gòu)造函數(shù)中訪問類 X的靜態(tài)私有數(shù)據(jù)成員 } void print ( ) 。// 友元類 Y的成員函數(shù)中訪問類 X的私有成員 cout”y = “X::yendl 。 Y c (6 , 9)。友元成員函數(shù)不僅可以訪問自己所在類中的私有成員,還可以訪問 friend說明語句所在類 (本類 )中的私有成員和保護成員。 public: X( int a ,char *str) { x = a 。ob) 。 public: Y( int b,char *str) { y = b 。ob) 。 cout”the string of Y is:”endl 。 } 該程序執(zhí)行后 , 輸出結(jié)果如下: the string of X is: stringx the string of Y is: stringy 友元成員使用的例子 該程序執(zhí)行后 , 輸出結(jié)果如下: the string of X is: stringx the string of Y is: stringy 說明: ( 1) 該程序中 , 類 X的成員函數(shù) show( ) 在類 Y中說明為友元 ,因此 , 在該友元成員 show( ) 中可以訪問類 Y的私有成員 stry。ob) 。 char *name 。 } void print() { coutnameis age years old.endl。 ()。 ()。 Member obj2( 57, Johnson)。 void main(){ Member obj1( 35, Tom), obj2( 57, Johnson)。 name = new char[ strlen ( str ) + 1 ]。 對象的內(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)存代碼段中,只有一份拷貝,被該類 所有對象共享。 如上例中 , 類 X的成員函數(shù)為類 Y的友元函數(shù) , 必須先定義類 X。 Y b(20 , “stringy”)。 void X::show(Y amp。 strcpy(stry , str) 。 class Y{ // 定義類 Y int y 。 strcpy(strx,str) 。 // 先聲明 Y是一個類 class X{ // 定義類 X int x 。 ( )。 (5) 。 int X::y = 1 。 // a是類 Y的對象成員 public: Y( int m , int n) { = m 。 // 在類的私有部分說明類 Y是類 X的友元類 public: void set(int a) {x = a。 // 說明類 A是類 B的友元類 … … }; 說明類 A是類 B的友元類的語句可以放在類 B的公有部分 , 也可以放在類 B的私有部分 。 而必須通過作為入口參數(shù)傳遞進來的對象名 、 或者對象指針 、或者對象引用來訪問該對象的私有或保護成員 。 double d=distance(A,B)。 return sqrt(dx*dx+dy*dy) 。 double distance(Point amp。 } friend double distance(Point amp。 class Point{ double x,y 。 友元函數(shù) 友元函數(shù)不是本類的成員函數(shù) , 而是獨立于本類的外部函數(shù) , 本類允許友元函數(shù)通過對象名訪問它的私有和保護成員 。 但是 , 為了兼容早期獨立定義的一些系統(tǒng)函數(shù)或提高兩個類之間的互訪效率 , 有時需要從類外部訪問類的私有成員 。 } void show() { coutobj objnumber 。 } 建立工程( Project ) Obj_counter,補充編寫頭文件,在 counter, 編譯、連接 和 ,生成 ,執(zhí)行該程序正確顯示以下一行信息: obj4 count=5 : include class counter { static int count。語句 , 則程序輸出: Single instance has created, OK!!! count=1 count=1 Can39。 Application* ptr1。 ptr=Application::init()。 } } Application::~Application() { count=count1。 return instance。 int Application::count=0。 ~Application ( )。 如果確實需要 , 靜態(tài)成員函數(shù)只能通過對象名 ( 或指向?qū)ο蟮闹羔?) 訪問該對象的非靜態(tài)成員 。 在類體外定義時 , 不要用 static前綴 。 例如 cout”x = “。 } void main( ) { A P(6) , Q(8) 。 // 靜態(tài)成員函數(shù) } 。 static int y 。 靜態(tài)成員函數(shù) 靜態(tài)成員函數(shù)可以直接訪問該類的靜態(tài)數(shù)據(jù)成員和成員函數(shù) , 而訪問非靜態(tài)成員時 , 必須通過對象進行 , 即必須通過參數(shù)傳遞方式得到對象名 , 然后通過對象名來訪問 。 ( )。 coutPoint A (( ),( )) 。} void Print ( ) {coutThe point is : ( x , y) endl。 count++ 。 } class Point { double x , y 。 例 對象計數(shù)模式。 obj_ID=count。 靜態(tài)數(shù)據(jù)成員通常用于對一個類已創(chuàng)建的對象計數(shù)或編號。 靜態(tài)數(shù)據(jù)成員的初始化與一般數(shù)據(jù)成員的初始化不同 , 其格式如下: 數(shù)據(jù)類型 類名::靜態(tài)數(shù)據(jù)成員名 =值; 這表明: ( 1) 初始化是在類體外進行的 , 在類中不為它分配內(nèi)存空間 。 在一個類中,若將一個數(shù)據(jù)成員說明為 static,這個成員就成為靜態(tài)數(shù)據(jù)成員。 程序運行結(jié)果: Constructor called Constructor called Constructor called Destructor called Destructor called Destructor called 類的靜態(tài)成員 類的靜態(tài)成員是為了解決同一個類的不同對象的數(shù)據(jù)共享和函數(shù)共享問題 。 } 顯然 , 在程序執(zhí)行 pd=new Date[3]。} } 。 include class Date{ int year, month, day 。 用 new創(chuàng)建對象數(shù)組 用 delete運算符刪除對象或?qū)ο髷?shù)組。 if (ptr==NULL) { … ; //內(nèi)存分配失敗的善后處理 } else { … 。此時 new 操作將返回一個空指針( NULL)。 此后在程序中就可以通過該指針訪問此動態(tài)創(chuàng)建的對象 。 i++) pa[i]print( )。a2, amp。 } }。 b=0。 } } (2) 指向?qū)ο髷?shù)組的指針 指向?qū)ο髷?shù)組的指針定義格式為: 類名 ( *〈 指針名 〉 ) [下標說明 ] 例如: Date
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1