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

正文內(nèi)容

第7章類和對象-文庫吧在線文庫

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

下一頁面
  

【正文】 象可以如下定義: Complex c1, c2, *pc, c[10]; 對象的定義 對象的定義 對象的存儲和訪問 real image real image c1 c2 對象的存儲 C++建立和初始化對象的過程是由該類的構(gòu)造函數(shù)來完成的。 而且對象作用域和生命期的規(guī)定基本上完全相同 ,區(qū)別在于對象在生命期開始時(shí)調(diào)用構(gòu)造函數(shù) , 在生命期結(jié)束時(shí)調(diào)用析構(gòu)函數(shù) 。 類的對象成員 1. 對象成員的定義 類的數(shù)據(jù)成員的類型可以是任意類型,例如,簡單類型或自定義類型,也可以是另一個(gè)類對象。 它們按參數(shù)名對應(yīng) 。 public: B(int i,int j,int k):a(k,j) { b1=i。 }。 void B::printB( ){ ( )。 對象指針的定義和使用遵循一般變量指針的各種規(guī)則 。 void main() { Exe obj(3,4),*p。 分析右邊程序,觀察程序中 this和 *this的用法 include class A { int a , b。 ( )。 將對象的地址作為第一個(gè)參數(shù)傳遞給成員函數(shù)。 為對象建立引用時(shí) , 程序中應(yīng)該用另一個(gè)對象的名字來初始化它 , 自此 , 引用作為目標(biāo)對象的別名 , 對引用的改動 , 實(shí)際上就是對目標(biāo)對象的改動 。} void Setxy(int i, int j){ x = i 。 // 通過對象調(diào)用成員函數(shù) ( ) 。 在向函數(shù)傳遞對象時(shí) , 是通過傳值調(diào)用傳遞給函數(shù)的 , 也就是說把對象的拷貝而不是對象本身傳給函數(shù) 。 cout”the copy of ob has a value of:”( )endl。 對象指針作函數(shù)形參時(shí) , 要求調(diào)用函數(shù)的實(shí)參是對象的地址值 。 y = j 。 ()。 使用對象引用作函數(shù)參數(shù)要比使用對象指針作函數(shù)參數(shù)更普遍 。} //對象引用作成員函數(shù) copy( )的形參 void Setxy( int i, int j) {x = i 。 (a)。 對象數(shù)組的定義格式為: 類名 數(shù)組名 [下標(biāo) 1][下標(biāo) 2]… 其中,類名指出該數(shù)組元素對象所屬的類,例如: Point point1[5]; Point point2[2][3] ; 與普通類型數(shù)組一樣 , 對象數(shù)組可以在定義時(shí)賦初值 , 也可以在程序中被賦值 。} void print ( )。 } 的賦值 class Point{ int x,y。i2。j3。 } A(int x, int y){ a = x 。a3 }。 例如: Point* ptr。 //內(nèi)存分配成功的后續(xù)正常處理 } 對象指針 =new 類名 [下標(biāo) ] //創(chuàng)建對象數(shù)組 例如:用 new運(yùn)算符創(chuàng)建類 Complex的對象數(shù)組: Complex *pc 。 public: Date ( ) { year = month = day = 0 。語句時(shí)三次調(diào)用了構(gòu)造函數(shù) , 執(zhí)行 delete[] pd。 靜態(tài)數(shù)據(jù)成員特點(diǎn) 1: 1.使用靜態(tài)數(shù)據(jù)成員可以節(jié)省內(nèi)存。 include // “” class counter { static int count。 運(yùn)行結(jié)果: obj2 count=5 include“ // “” int counter::count=0。 } // 構(gòu)造函數(shù) double GetX( ) {return x 。 ( )。 用 static關(guān)鍵字聲明的成員函數(shù)是靜態(tài)成員函數(shù)。 int A::y = 0 。 訪問類的靜態(tài)成員是直接進(jìn)行的 。 class Application{ static Application * instance。 Application *Application::init() { if (count==0) { count=count+1。 coutThe single instance has released!endl。 ptr1=Application::init()。 int objnumber。 比如 , 為此 C++提供了一種有條件打破封裝的機(jī)制 ——“友元 ” , 在不影響私有數(shù)據(jù)安全性的前提下 , 使類的 “ 朋友 ” 能從類的外部訪問類的私有成員 。 public: Point(double a , double b){x = a 。p1,Point amp。 cout”Distance is :”dendl 。 class X{ int x 。// 友元類 Y的構(gòu)造函數(shù)中訪問類 X的私有成員 X::y = n 。 ( ) 。 char *strx 。 char *stry 。ob) // 類 X的成員函數(shù)的定義 { cout”the string of X is:”strxendl。 并且在說明友元函數(shù)時(shí) , 要加上成員函數(shù)所在的類名 ,如: friend void X::show( Y amp。 strcpy( name, str ) 。 ()。 ()。 include include class Member{ int age。 (b)。 } friend void X::show( Y amp。 } void show( Y amp。 } 執(zhí)行該程序,輸出如下結(jié)果 x = 5 , y = 1 x = 6 , y = 9 x = 5 , y = 9 友元成員 除了一般的函數(shù)可以作為某個(gè)類的友元外,一個(gè)類的成員函數(shù)也可以作為另一個(gè)類的友元,這種成員函數(shù)稱為友元成員。 void Y::print( ) { cout”x = “”,”。 } void print ( ) { cout”x=”x”,””y=”yendl 。 友元類 不僅函數(shù)可以作為一個(gè)類的友元 , 一個(gè)類也可以作為另一個(gè)類的友元 , 這種類稱為友元類 。 } 友元函數(shù)舉例 void main( ) { Point A(,), B(,) 。p1,Point amp。 友元函數(shù)應(yīng)在本類的定義中說明 , 函數(shù)原型如下: friend 返回值類型 友元函數(shù)名 ( 參數(shù)表 ) ; 關(guān)鍵字 friend指明 , 此函數(shù)不是本類的成員 。 coutcount=count\n。t create more than one instance!!! count=1 已知:文件 : include“ int counter::count=0。 coutcount=Application::countendl。 } else { coutCan39。 static Application* init()。 使用靜態(tài)成員函數(shù)可以在建立任何對象之前處理靜態(tài)數(shù)據(jù)成員 , 這是普通成員函數(shù)不能實(shí)現(xiàn)的功能 。 A::fun(P)。 // 靜態(tài)數(shù)據(jù)成員 public: A(int i) { x = i 。 // 輸出對象序號 } 例 對象計(jì)數(shù)模式。} }。 static int count。 } void show() { coutobj obj_ID 。 ( 2) 初始化時(shí)不加該成員的訪問權(quán)限控制符private、 protected、 public等 。 例如 , 對程序運(yùn)行過程中某一個(gè)類的對象個(gè)數(shù)進(jìn)行統(tǒng)計(jì) ,采用類的靜態(tài)成員來解決最為方便 。 void main( ) { Date *pd。其語法形式與刪除普通變量和普通數(shù)組完全相同。如果沒有注意到 new操作失敗而去使用對象指針將會發(fā)生無法估計(jì)的后果。 } (3) 對象指針數(shù)組 執(zhí)行該程序輸出如下: 3, 4 8, 9 0, 0 對象指針數(shù)組的所有元素都是指向同一個(gè)類的對象的指針 。 void main( ) { A a1(3,4), a2(8,9), a3。 //pd是指向一維對象數(shù)組的指針 , 該數(shù)組元素是 Date類的對象 。 Point (*p)[3](point)。} void print()。 dates[3]=Date(1999,9,10) 。 public: Date ( ) {year = month = day = 0 。 //實(shí)參對象 a對應(yīng)于對象形參 a1,實(shí)參對象 b對應(yīng)于對象引用形參 ( )。 void f (A a1, A amp。 y = j 。 //實(shí)參對象 a對應(yīng)于對象形參a1,對象 b的地址 amp。 a2Setxy(2,5)。 y = j 。 } 例 :對象名作函數(shù)參數(shù) 執(zhí)行程序 , 輸出結(jié)果如下: the copy of ob has a value of: 100 the value of the r has a value of : 10 (2 ) 對象指針作函數(shù)參數(shù) 同其它類型變量一樣 , 也可以將對象地址傳遞給函數(shù) , 即使用對象指針作為函數(shù)形參 , 并且這比使用對象作函數(shù)參數(shù)更普遍一些 。} void Seta(int n) { a = n 。 } 程序輸出: 3, 4 3, 4 10, 15 10, 15 說明:類 M的對象 p和 p的引用 q。 void main( ){ M p(3, 4)。 include class M{ int x , y 。 對象的引用 對象引用的定義格式為: 類名 amp。 轉(zhuǎn)換成如下形式: print (amp。 b = j 。 // 將指針 p指向?qū)ο?obj pprint( )。 y = b 。point1 。 int b1。 coutb1endl。 } void printA( ){ couta1”,”a2endl。 int b1,b2。 也可單獨(dú)定義 , 如: Clock now。 訪問格式為: 對象名 . 數(shù)據(jù)成員名 或 對象名 .成員函數(shù)名 ( 〈 實(shí)參表 〉 ) 如:類 Point的對象的成員的訪問如下: Point p1 ; // 定義 Point類對象 p1 p1 . x 。 例如 , 編譯系統(tǒng)為 Complex類生成的缺省析構(gòu)函數(shù)如下: Complex :: ~Complex ( ) { } 類描述了對象的數(shù)據(jù)存儲和操作特性 , 對象是類的實(shí)例 。 coutThe distance between point1 and point2 is :cendl 。} }。 例 析構(gòu)函數(shù)調(diào)用測試 include include class Point{ double x , y。 public: Point (double a , double b) : x (a) , y (b) { cout “Constructer called . “endl 。 publ
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1