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

正文內(nèi)容

3c面向?qū)ο蟪绦蛟O(shè)計(jì)-資料下載頁(yè)

2025-01-19 01:12本頁(yè)面
  

【正文】 對(duì)于 void fun(int)。和 void fun(int); fun(i)無法選擇調(diào)用哪個(gè)函數(shù); ? 利用重載可以設(shè)計(jì)多個(gè)構(gòu)造函數(shù),為對(duì)象提供多種初始化方式; ? P96例 319: class Box { public: Box(){……}。 Box(int,int,int){……}。 }…… Box box1。 Box Box2(10,15,20)。 運(yùn)算符重載 ? 運(yùn)算符重載指對(duì)于不同數(shù)據(jù)類型的操作數(shù),同一個(gè)運(yùn)算符所代表的運(yùn)算功能可以不同; ? 可以把運(yùn)算符看成調(diào)用運(yùn)算符函數(shù),如 10+20看成 int +(10,20); ? 重載運(yùn)算符就是編寫運(yùn)算符函數(shù); ? 格式 數(shù)據(jù)類型 operator運(yùn)算符 (形參表 )。 ? P97例 320非成員函數(shù)重載運(yùn)算符: class Complex { …… } Complex operator+(Complex c1,Complex c2) { …… } void main() {…… plex=plex1+plex2。 } ? 利用非成員函數(shù)重載雙目運(yùn)算符時(shí),運(yùn)算符函數(shù)的第一個(gè)參數(shù)代表運(yùn)算符左邊的操作數(shù),運(yùn)算符函數(shù)的第二個(gè)參數(shù)代表運(yùn)算符右邊的操作數(shù); ? Complex operator+(Complex c1,Complex c2) ? 如果運(yùn)算符函數(shù)要求訪問一個(gè)類的非公有成員,則運(yùn)算符函數(shù)不能定義為非成員函數(shù),除非將它聲明為該類的友元函數(shù); ? P98例 321成員函數(shù)重載運(yùn)算符: class Complex { Complex operator+(Complex)。 } Complex Complex ::operator+(Complex other) { …… } void main() {…… plex=plex1+plex2。 } ? 利用成員函數(shù)重載雙目運(yùn)算符時(shí),運(yùn)算符左邊的操作數(shù)就是對(duì)象本身,不能再將它作為運(yùn)算符函數(shù)的參數(shù),因此,這時(shí)運(yùn)算符函數(shù)只需一個(gè)函數(shù)參數(shù); ? Complex operator+(Complex)。 ? 同一個(gè)重載運(yùn)算符的參數(shù)個(gè)數(shù)是相同的; ? 用戶不能定義新的運(yùn)算符,只能對(duì)現(xiàn)有的進(jìn)行重載; ? 重載后的優(yōu)先級(jí)和結(jié)合性不變; ? 下列運(yùn)算符不能重載 “ .”(成員運(yùn)算符) “ ::”(作用域限定符) “ ?:”(條件運(yùn)算符) “ *”(成員指針選擇符); C++模板 ? 模板:將數(shù)據(jù)類型參數(shù)化的工具; ? 使用模板時(shí)根據(jù)實(shí)參的數(shù)據(jù)類型確定模板參數(shù)的數(shù)據(jù)類型; ? 避免代碼重復(fù)編寫; 函數(shù)模板 ? 例: int abs(int val) { return val0?val:val。 } float abs(float val) { return val0?val:val。 } ? 為了避免這種代碼的重復(fù)編寫, C++提供函數(shù)模板; ? 例: template class T //T是自己定義的類型參數(shù) T abs(T val) { return val0?val:val。 } ? abs(1)。 abs()。 ? 類型參數(shù)定義格式: template class 類型參數(shù)名 template class T1, class T2, class T3 ? 編譯時(shí)函數(shù)模板本身并不產(chǎn)生實(shí)際的可執(zhí)行代碼,只有在函數(shù)模板被實(shí)例化時(shí),編譯器才按照實(shí)參的數(shù)據(jù)類型進(jìn)行類型參數(shù)的替代,生成新的函數(shù),然后編譯這個(gè)函數(shù); 類模板 ? 類模板:不確定類的某些數(shù)據(jù)成員的類型或成員函數(shù)的參數(shù)及返回值的類型的類; ? 例 template class T // //T是自己定義的數(shù)據(jù)類型 class MyTemClass { private: T x。 public: void SetX(T a){x=a。}。 T GetX(){return x。}。 }。 ? 在模板類的外部定義模板類的成員函數(shù): template class T void MyTemClassT::SetX(T a) { x=a。 } ? 根據(jù)使用模板類聲明對(duì)象時(shí)所給出的實(shí)際類型確定類型參數(shù); ? 例: MyTemClass int a1。 ? 編譯器先用 int 替代模板類定義中的類型參數(shù) T,生成一個(gè)所有數(shù)據(jù)類型已確定的類,再利用這個(gè)類聲明對(duì)象; ? 定義類模板時(shí)可以使用多個(gè)類型參數(shù),還可以含有已確定類型的參數(shù); ? 例: template class T1,int i,class T2 class MyTemClass { …… } 聲明: MyTemClass int,100,float MyObject。 Microsoft Visual C++的語(yǔ)法擴(kuò)充 ? Visual C++自定義數(shù)據(jù)類型 ? Visual C++運(yùn)行庫(kù) 運(yùn)行時(shí)類型識(shí)別 ? RTTI:在程序運(yùn)行時(shí)確定對(duì)象的類型 ? dynamic_cast運(yùn)算符:檢查一個(gè)基類指針是否指向其派生類對(duì)象; ? 語(yǔ)法: dynamic_castTypeID (EXP) TypeID必須是類的指針、引用或 void *; EXP必須是一個(gè)具體的指針或引用; ? 作用:檢查基類指針 EXP是否指向其派生類TypeID類型的對(duì)象,若是,運(yùn)算結(jié)果是該TypeID類的對(duì)象的指針,否則為 NULL(空); ? 例 class A …… class B:public A …… A *p1=new A。 A *p2=new B。 B *pb1=dynamic_castB*(p1)。 B *pb2=dynamic_castB*(p2)。 ? 結(jié)果: pb1==NULL pb2!=NULL ? typeid運(yùn)算 ? 輸出類名: typeid(對(duì)象名) .name() ? 比較兩種變量(對(duì)象)類型是否相同: typeid(變量) ? 例: int i=0。 if (type(i)!=typeid(float)) cout“ not float” 。 演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1