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

正文內(nèi)容

面向對象程序設計語言基礎-資料下載頁

2025-01-08 15:45本頁面
  

【正文】 dius( )。 private: //內(nèi)部數(shù)據(jù) double x。 //橫坐標 double y。 //縱坐標 }。 第 3章 面向對象程序設計語言基礎 //Point類的成員函數(shù)定義 include define pi void Point::set(double ix,double iy) { x=ix。 y=iy。 } double Point::xoffset( ) { return x。 } 第 3章 面向對象程序設計語言基礎 double Point::yoffset( ) { return y。 } double Point::angle( ) { return(180/pi)*atan2(y,x)。 } double Point::radius( ) { return sqrt(x*y+y*y)。 } 第 3章 面向對象程序設計語言基礎 每個成員函數(shù)前都加了類名 。 要使用這段代碼 ,應包含兩個頭文件 , 一個是 , 因為所有成員函數(shù)的聲明都在類的定義中;另一個是 , 因為在成員函數(shù)的定義中調(diào)用了 。 在本例中我們將數(shù)據(jù)和操作結合 , 構成了一個不可分割的整體 , 即類 。 用這個類可生成具有不同屬性值的對象 。類中的一些數(shù)據(jù)成員是私有的 , 它們被有效的屏蔽 ,外界不會對其產(chǎn)生干擾和誤操作;另一些成員 (成員函數(shù) )是公共的 , 它們作為接口提供給外界使用 。 第 3章 面向對象程序設計語言基礎 5. 構造函數(shù)和析構函數(shù) 在 OOP中 , 凡是創(chuàng)建的對象都需要作某種形式的初始化 。 為此需要構造函數(shù) (Constructor Function), 供創(chuàng)建類的實例對象時調(diào)用 , 用以自動完成對象的初始化 。 析構函數(shù) (Destructor Function)是與構造函數(shù)相對應的一個概念 , 它用于釋放對象定義時通過構造函數(shù)向系統(tǒng)申請的存儲空間以及有關的系統(tǒng)資源 , 它是在其有效范圍內(nèi)自動調(diào)用的 。 下面通過一個例子認識構造函數(shù)和析構函數(shù) 。 第 3章 面向對象程序設計語言基礎 例 構造函數(shù)和析構函數(shù)舉例 。 class Stack { char array[size]。 int * tos。 ~ Stack( ); public: Stack( ); //這是一個構造函數(shù) viod push(char); char pop(cahr); 第 3章 面向對象程序設計語言基礎 }; Stack::Stack( ) //說明函數(shù)所屬的類且與類名相同 { coutconstructing a stackendl。 tos=new int[10]。 //分配堆空間 } Stack:: ~ Stack( ) { coutdestructing stackendl。 delete tos; //釋放堆空間 } 第 3章 面向對象程序設計語言基礎 通過該例我們對構造函數(shù)和析構函數(shù)有了一個初步的認識 , 下面再來對它們進行詳細的討論 。 1) 構造函數(shù)的特性 構造函數(shù)是類的一個特殊的成員函數(shù) , 因此它除具有一般成員函數(shù)的受訪問限制 、 可重載等性質(zhì)外 ,還具有其自身的許多的特性: (1) 構造函數(shù)的名稱與它所屬的類名相同 , 在類對象被創(chuàng)建時自動調(diào)用 , 它不能用常規(guī)的方法調(diào)用 , 不能被繼承; 第 3章 面向對象程序設計語言基礎 (2) 構造函數(shù)無返回類型 (任何返回類型 , 包括 void,都是非法的 ), 不能帶有 return語句; (3) 一個類可以具有多個構造函數(shù) , 重載時參數(shù)的個數(shù)或類型應不一樣 , 兩個具有相同參數(shù)類型和個數(shù)的構造函數(shù)是非法的; (4) 如果在編程時類中沒有顯式的定義構造函數(shù) ,在編譯時系統(tǒng)會自動的生成一個不帶任何參數(shù)的構造函數(shù); (5) 構造函數(shù)在調(diào)用時 , 控制成員變量的內(nèi)存分配 ,為定義的對象向系統(tǒng)申請內(nèi)存 。 第 3章 面向對象程序設計語言基礎 2) 構造函數(shù)的設計與使用 類中的私有成員一般不作初始設置 , 需要在定義對象時初始化 。 采用顯式調(diào)用成員函數(shù)初始化對象容易遺漏 , 造成對象無意義 , 因此 , 使用構造函數(shù)對對象進行初始化是最佳選擇 。 同時 , 一個類的不同對象需要有不同的初始化 , 因此可以采用帶參數(shù)的構造函數(shù)和多構造函數(shù)來解決這個問題 。 下面討論幾種構造函數(shù) 。 第 3章 面向對象程序設計語言基礎 (1) 帶參數(shù)的構造函數(shù) 。 例 帶參數(shù)的構造函數(shù)舉例 。 class Course { float x, y; float GDP。 public: Course(ifloat ox, float oy )。 int GDP( float x, float y)。 }; Course:: Course(int x, int y) 第 3章 面向對象程序設計語言基礎 { //以參數(shù)初始化變量 x=ox。 y=oy。 }。 int Course::GDP(int x, int y) { GDP=(x+y)/2; } void main( ) { Course S(90,85); //定義對象時初始化 (90,85); } 第 3章 面向對象程序設計語言基礎 如果在定義對象 S時不帶參數(shù) , 如 Course S; , 那么 , 構造函數(shù)就不能對 x、 y賦初值 。 構造函數(shù)定義了缺省值 , 在函數(shù)調(diào)用時 , 若無特別指定參數(shù) , 便以缺省值作初始化 , 而且也可以防止遺漏初始賦值 。 缺省參數(shù)的構造函數(shù)的用法與一般函數(shù)的用法相同 。 例如將上述函數(shù)改為帶缺省參數(shù)的構造函數(shù)如下: 第 3章 面向對象程序設計語言基礎 class Course { float x, y; float GDP; public: Course(int ox=90,oy=85) {x=ox。 y=oy; } }; 第 3章 面向對象程序設計語言基礎 (2) 多構造函數(shù) (構造函數(shù)重載 )。 對于一個類的不同對象 , 當其需要不同類型和不同個數(shù)的初始化參數(shù)時 , 可以在一個類中定義幾個構造函數(shù) , 以適應不同的情況 。 例 多構造函數(shù)舉例 。 class Course { public: Course( )。 Course(float)。 Course(char,float)。 第 3章 面向對象程序設計語言基礎 }; void main( ) { Course ob1。 Course ob2()。 Course ob3(39。M39。,)。 } 第 3章 面向對象程序設計語言基礎 (3) 復制構造函數(shù) (Copy Constructor)。 復制構造函數(shù)是一種特殊的構造函數(shù) , 它除了具有一般構造函數(shù)所具有的性質(zhì)外 , 還具有一些特殊的性質(zhì): ① 具有將參數(shù)傳輸對象按位拷貝的功能 。 ② 編譯系統(tǒng)在編譯類時 , 產(chǎn)生一個缺省拷貝構造函數(shù) , 例如 , 在 main( )中的語句 Course ob1(39。M39。,)。 Course ob2(ob1)。 對定義對象 ob2, 編譯系統(tǒng)自動調(diào)用缺省拷貝構造函數(shù) , 實現(xiàn)對象的按位拷貝 。 ob2與 ob1完全相同 , 但它們是兩個完全獨立的對象 。 第 3章 面向對象程序設計語言基礎 ③ 程序員也可以自己定義拷貝構造函數(shù) , 定義格式如下: classname(const classname amp。obj){…} 其中 , obj是引用對象 , 可以用于初始化其他對象 ,若有其他參數(shù) , 則在此后列出 , 若缺省 , 則這個引用對象不能省; const是習慣上的限定詞 (即習慣上將被拷貝對象聲明為不可改寫 ), obj對象也可以不是 const型 。 第 3章 面向對象程序設計語言基礎 例 拷貝構造函數(shù)舉例 。 class Course { char x。 flaot y。 public: Course(char ox,float oy){x=ox。y=oy。} Course(const course amp。M) {x=。y=。} }。 第 3章 面向對象程序設計語言基礎 void main( ) { Course ob1(39。M39。,)。 Course ob2(ob1); } 第 3章 面向對象程序設計語言基礎 注意:如果類中包含有指針成員 , 那么就要慎用缺省的拷貝構造函數(shù) , 因為編譯器提供的拷貝構造函數(shù)只是簡單的按位拷貝成員數(shù)據(jù) , 它會使兩個對象的指針指向同一片內(nèi)存區(qū)域 , 而不是復制指針指向的內(nèi)容 。 若該內(nèi)存區(qū)是動態(tài)分配的 , 編程者有義務釋放它 ,但在釋放時會遇到麻煩 , 因為其中一個指針被釋放后 ,另一個指針所指的區(qū)域就失去了意義 , 這可能會導致嚴重的后果 。 第 3章 面向對象程序設計語言基礎 3) 析構函數(shù)的特性和用法 析構函數(shù)是用于當對象離開其有效范圍時 , 釋放對象所占用的內(nèi)存空間的一個特殊函數(shù) 。 析構函數(shù)也是成員函數(shù) , 它是與構造函數(shù)相對應的 , 命名時在構造函數(shù)名前加 “ ~ ” 。 析構函數(shù)只能是無返回類型 , 不能帶任何參數(shù) , 不能被重載 , 一個類只允許有一個析構函數(shù) 。析構函數(shù)的定義一般是由一系列的 delete組成的 。 第 3章 面向對象程序設計語言基礎 例 析構函數(shù)舉例 。 include include class sample { private: char * pointer_char。 public: sample( ){pointer_char=NULL。}。 sample(char * str) 第 3章 面向對象程序設計語言基礎 { pointer_char=new char[strlen(str)+1]。 strcpy(pointer_cahr,str)。 }。 sample(sample amp。ob) { pointer_char=new char[strlen()+1]。 strcpy(pointer_char,)。 }。 ~ sample( ){if(pointer_char!=NULL)delete pointer_char。}。 }。 第 3章 面向對象程序設計語言基礎 寫 C++類代碼的相關基礎常識 寫類代碼 (主要考慮封裝性 )會涉及到許多 C++的語法知識細節(jié) , 本節(jié)敘述寫類代碼時應該理解的其中一些基礎 C++知識 。 對于在 C++中表現(xiàn)繼承性和多態(tài)性的內(nèi)容 , 在后幾節(jié)將進行討論 。 這些是面向對象程序設計的基礎 , 要成為一個好的程序員 , 應對其有一定了解 。 1. const對象和 const成員函數(shù) 對對象的最低訪問權是良好軟件工程的一項基本原則 。 下面講述的就是這一原則在對象上的應用 。 第 3章 面向對象程序設計語言基礎 某些對象是需要修改的 , 而有些對象是不需要修改的 。 可以在程序中用關鍵字 const指明那些不允許修改的對象 , 任何試圖修改這種對象的嘗試都會導致編譯錯誤 。 例如: const Time noon(12, 0, 0); 聲明了類 Time的一個 const對象 , 并把該對象初始化成時針為 12點的時間 。 用 const聲明某個對象可強制實現(xiàn)最低訪問權原則 。如果程序員不小
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1