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

正文內(nèi)容

第7章類和對(duì)象(留存版)

  

【正文】 nt( )。 轉(zhuǎn)換成如下形式: print (amp。 include class M{ int x , y 。 } 程序輸出: 3, 4 3, 4 10, 15 10, 15 說明:類 M的對(duì)象 p和 p的引用 q。 } 例 :對(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ù)更普遍一些 。 a2Setxy(2,5)。 y = j 。 //實(shí)參對(duì)象 a對(duì)應(yīng)于對(duì)象形參 a1,實(shí)參對(duì)象 b對(duì)應(yīng)于對(duì)象引用形參 ( )。 dates[3]=Date(1999,9,10) 。 Point (*p)[3](point)。 void main( ) { A a1(3,4), a2(8,9), a3。如果沒有注意到 new操作失敗而去使用對(duì)象指針將會(huì)發(fā)生無法估計(jì)的后果。 void main( ) { Date *pd。 ( 2) 初始化時(shí)不加該成員的訪問權(quán)限控制符private、 protected、 public等 。 static int count。 // 輸出對(duì)象序號(hào) } 例 對(duì)象計(jì)數(shù)模式。 A::fun(P)。 static Application* init()。 coutcount=Application::countendl。 coutcount=count\n。p1,Point amp。 友元類 不僅函數(shù)可以作為一個(gè)類的友元 , 一個(gè)類也可以作為另一個(gè)類的友元 , 這種類稱為友元類 。 void Y::print( ) { cout”x = “”,”。 } void show( Y amp。 (b)。 ()。 strcpy( name, str ) 。ob) // 類 X的成員函數(shù)的定義 { cout”the string of X is:”strxendl。 char *strx 。// 友元類 Y的構(gòu)造函數(shù)中訪問類 X的私有成員 X::y = n 。 cout”Distance is :”dendl 。 public: Point(double a , double b){x = a 。 int objnumber。 coutThe single instance has released!endl。 class Application{ static Application * instance。 int A::y = 0 。 ( )。 運(yùn)行結(jié)果: obj2 count=5 include“ // “” int counter::count=0。 靜態(tài)數(shù)據(jù)成員特點(diǎn) 1: 1.使用靜態(tài)數(shù)據(jù)成員可以節(jié)省內(nèi)存。 public: Date ( ) { year = month = day = 0 。 例如: Point* ptr。 } A(int x, int y){ a = x 。i2。} void print ( )。 (a)。 使用對(duì)象引用作函數(shù)參數(shù)要比使用對(duì)象指針作函數(shù)參數(shù)更普遍 。 y = j 。 cout”the copy of ob has a value of:”( )endl。 // 通過對(duì)象調(diào)用成員函數(shù) ( ) 。 為對(duì)象建立引用時(shí) , 程序中應(yīng)該用另一個(gè)對(duì)象的名字來初始化它 , 自此 , 引用作為目標(biāo)對(duì)象的別名 , 對(duì)引用的改動(dòng) , 實(shí)際上就是對(duì)目標(biāo)對(duì)象的改動(dòng) 。 ( )。 void main() { Exe obj(3,4),*p。 void B::printB( ){ ( )。 public: B(int i,int j,int k):a(k,j) { b1=i。 類的對(duì)象成員 1. 對(duì)象成員的定義 類的數(shù)據(jù)成員的類型可以是任意類型,例如,簡(jiǎn)單類型或自定義類型,也可以是另一個(gè)類對(duì)象。 例如 , 一個(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ù)來完成的。 ( )。 [2] 析構(gòu)函數(shù)沒有參數(shù) , 不能指定類型說明 。 } }。 ( 2) 構(gòu)造函數(shù)是特殊的內(nèi)聯(lián)函數(shù) 。 double image 。 不能在類的說明部分給類的數(shù)據(jù)成員賦初值 , 例如在點(diǎn)類的定義中 , 下面的定義是錯(cuò)的: Class Point{ int x=0 , y=0。 公有成員往往是一些操作 ( 即成員函數(shù) ) , 可在程序中類的外部訪問它們 , 它們是類的對(duì)外接口 。 類的成員包括數(shù)據(jù)成員和函數(shù)成員 。 y = b。 ( 1) 內(nèi)聯(lián)函數(shù) 內(nèi)聯(lián)函數(shù)是特殊的 C++函數(shù) , 類似于宏指令 , 它直接在調(diào)用處插入函數(shù)體中的代碼 , 而不進(jìn)行一般函數(shù)的調(diào)用操作 。 } double GetMagnitude ( ) { double t 。 構(gòu)造函數(shù)和析構(gòu)函數(shù) 構(gòu)造函數(shù) class Clock { int hour, minute, second。 cout” initialized … ”endl 。 public: Point (double a , double b) // 構(gòu)造函數(shù) { x = 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ù)。 p1 . y 。 public: … }。 } 在類 B的成員也可以用初始化列表的方法來初始化: class B{ A a。 p2=amp。 //用指針 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ì)象 。a1) 。 public: M( ){x = y = 0 。 從程序輸出結(jié)果中可看出:對(duì) q的操作實(shí)際上是對(duì) p的操作 。 因?yàn)槭褂脤?duì)象指針作函數(shù)參數(shù)有如下兩點(diǎn)好處: ( 1) 實(shí)現(xiàn)傳址調(diào)用 。 } 例 對(duì)象指針作函數(shù)參數(shù) void main() { A a(3,4),b。} void copy( A amp。 ( )。 for(int i=0 。 //定義一個(gè)指向一維對(duì)象數(shù)組的指針 p, //并用數(shù)組名 point進(jìn)行初始化 , 使指針 p指向數(shù)組 point for( i=0。 A *pa[3]={ amp。所以通常在每次 new 操作后應(yīng)寫一段程序檢查 new 是否成功 : Point* ptr。 pd=new Date[3]。 ( 3) 初始化時(shí)必須使用作用域運(yùn)算符::來表明它所屬的類 。 public: Point (double a = 0, double b =0) { x = a 。 運(yùn)行結(jié)果: Point A (, ) PointObject id = 1 Point B (, ) PointObject id = 2 說明:類 Point的數(shù)據(jù)成員 count被聲明為靜態(tài) , 用來給 Point類的對(duì)象計(jì)數(shù) , 靜態(tài)數(shù)據(jù)成員 count的定義和初始化在類外進(jìn)行 。 A::fun(Q)。 }。 delete ptr。 } }。p2) 。 當(dāng)類 A作為類 B的友元類時(shí) ,類 A的所有成員函數(shù)都是類 B的友元函數(shù) , 都可以訪問類 B中的私有成員和保護(hù)成員 。// 友元類 Y的成員函數(shù)中訪問類 X的私有成員 cout”y = “X::yendl 。ob) 。 } 該程序執(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。 ()。 name = new char[ strlen ( str ) + 1 ]。 void X::show(Y amp。 // 先聲明 Y是一個(gè)類 class X{ // 定義類 X int x 。 // a是類 Y的對(duì)象成員 public: Y( int m , int n) { = m 。 double d=distance(A,B)。 class Point{ double x,y 。 } 建立工程( Project ) Obj_counter,補(bǔ)充編寫頭文件,在 counter, 編譯、連接 和 ,生成 ,執(zhí)行該程序正確顯示以下一行信息: obj4 count=5 : include class counter { static int count。 } } Application::~Application() { count=count1。 如果確實(shí)需要 , 靜態(tài)成員函數(shù)只能通過對(duì)象名 ( 或指向?qū)ο蟮闹羔?) 訪問該對(duì)象的非靜態(tài)成員 。 // 靜態(tài)成員函數(shù) } 。 coutPoint A (( ),( )) 。 例 對(duì)象計(jì)數(shù)模式。 在一個(gè)類中,若將一個(gè)數(shù)據(jù)成員說明為 static,這個(gè)成員就成為靜態(tài)數(shù)據(jù)成員。 include class Date{ int year, month, day 。 此后在程序中就可以通過該指針訪問此動(dòng)態(tài)創(chuàng)建的對(duì)象 。 b=0。 // point是二維對(duì)象數(shù)組 for(int i=0。 day = d 。 } 例 對(duì)象引用作函數(shù)參數(shù) void main() {
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1