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

正文內(nèi)容

cnet程序設(shè)計(jì)-資料下載頁(yè)

2025-02-22 01:04本頁(yè)面
  

【正文】 2) 用 abstract指定類(lèi)的方法為抽象方法 ,具有 abstract方法的類(lèi)就是抽象類(lèi) 。 ref class Swimmer{ public: virtual void swim()abstract。 //抽象方法 void dive(){ Console::WriteLine(under water 50 m...)。 } }。 虛函數(shù) 與抽象類(lèi) ( 3) 具有純虛函數(shù)的類(lèi)是抽象類(lèi) ref class Swimmer{ public: virtual void swim()=0。 //純虛函數(shù) void dive(){Console::WriteLine(under water 50 m...)。 } }。 【 例 911】 設(shè)計(jì)一抽像類(lèi) Swimmer,其中包括純虛方法 swim(),和虛方法 speed()、 diver();設(shè)計(jì) Swimmer的派生類(lèi) Fish,并在其中重寫(xiě) swim()、 speed()方法,重載 dive()方法。 // : 主項(xiàng)目文件。 include using namespace System。 ref class Swimmer{ public: virtual void swim()=0。 //純虛函數(shù) virtual void speed(){Console::WriteLine(Swimmer:\t5m every second...)。} virtual void dive(){Console::WriteLine(Swimmer:\tunder water 50 m...)。} }。 ref class Fish:Swimmer{ public: virtual void swim() override { Console::WriteLine(Fish:\tI39。m a fish,i can swimming!)。 } virtual void speed() override { Console::WriteLine(Fish:\t10m every second...)。 } //void dive(){ //錯(cuò)誤,重寫(xiě)要加上 virtual Console::WriteLine(fishe:under water 50 m...)。 } void dive(int a){ //重載,參數(shù)表不同 Console::WriteLine(fish:\tunder water {0} m...,a)。} }。 int main(arraySystem::String ^ ^args) { Swimmer ^s。 Fish fish1。 ()。 ()。 (100)。 ::speed()。 s=gew Fish。 sswim()。 sdive()。 sspeed()。 sSwimmer::dive()。 return 0。 } 注意 ( 1)在托管類(lèi)中,所有的虛函數(shù)必須用virtual明確指出。派生類(lèi)重寫(xiě)基類(lèi)的虛函數(shù)時(shí),必須在該函數(shù)的聲明中同時(shí)加上virtual和 override頭鍵字。 ( 2) virtual和 override頭鍵字只能類(lèi)成員函數(shù)的聲明時(shí),在類(lèi)的內(nèi)部使用,不能用于類(lèi)體外的成員函數(shù)定義中 。 ( 3)如果派生類(lèi)需要自定義與基類(lèi)某個(gè)虛函數(shù)的函數(shù)原型相同的成員函數(shù)(該函數(shù)與基類(lèi)的虛函數(shù)無(wú)關(guān)),必須在函數(shù)聲明的原型后面加上 new關(guān)鍵字。 sealed類(lèi) 和 sealed方法 ? 將 sealed關(guān)鍵字放在類(lèi)名之后,并且在類(lèi)主體、基類(lèi)派生列表或分號(hào)之前,就將該類(lèi)指定義成了密封類(lèi)。密封類(lèi)不能被其它類(lèi)繼承。 Page302 ? 在一個(gè)方法后的原型后面加上 sealed就將它指定成了密封方法, sealed方法不能在派生類(lèi)中被重寫(xiě)。 接口類(lèi)的概念 ? 接口類(lèi)是一種抽象類(lèi)。它可以包含有屬性、方法和事件。接口中不能包含任何實(shí)現(xiàn)代碼,也不能包括任何字段(即數(shù)據(jù)成員)。實(shí)現(xiàn)接口的任何類(lèi)必須為接口中聲明的抽象成員提供定義。 接口類(lèi)的定義 interface class 接口名 { 成員列表 }; 接口類(lèi)定義以關(guān)鍵字 interface class(或 interface struct)開(kāi)頭,緊接其后的通常是用大寫(xiě)字母 I(表示接口)開(kāi)始的標(biāo)識(shí)符作為接口名,并包含一個(gè)由 public方法、屬性和事件構(gòu)成的成員列表。 接口類(lèi)的注意事項(xiàng) – 接口類(lèi)成員列表中的所有方法、屬性和事件都是public類(lèi)型的純 virtual方法。因此,接口類(lèi)中的 public和 virtual關(guān)鍵字,以及用于成員是純虛函數(shù)的“ =0”初始值都可以省略。 – 接口類(lèi)不能包括數(shù)據(jù)成員、靜態(tài)成員、構(gòu)造函數(shù)、析構(gòu)函數(shù)和運(yùn)算符重載函數(shù),不能包括任何實(shí)現(xiàn)代碼(即只能包括函數(shù)原型),也不能使用 sealed關(guān)鍵字限定接口。 – 接口類(lèi)可以從其它接口類(lèi)繼承,但不能夠從一般類(lèi)繼承。要使用接口的類(lèi)必須指出它實(shí)現(xiàn)了接口,也稱(chēng)為繼承接口。 – 在托管 C++中,一個(gè)類(lèi)只能從一個(gè)基類(lèi)繼承,但一個(gè)類(lèi)可以從多個(gè)接口類(lèi)繼承。 【 例 912】 設(shè)計(jì)一電源接口 ISwitch其中包括開(kāi)和關(guān)兩個(gè)方法,再設(shè)計(jì)一個(gè)打印接口 IPrint,其中包括一個(gè)打印方法 print()和一個(gè)設(shè)置打印頁(yè)的屬性 page。并設(shè)計(jì)兩個(gè)類(lèi),實(shí)現(xiàn)這兩個(gè)接口的功能。 // : 主項(xiàng)目文件。 include using namespace System。 interface class ISwitch{ void on()。 void off()。 }。 interface class IPrint{ void print()。 property unsigned page{ unsigned get()。 void set(unsigned )。 } }。 ref class DocPrint:public IPrint{ public: virtual void print(){ Console::WriteLine(Print Micorsoft Word Document Page {0},page)。} property unsigned page{ virtual unsigned get(){return pages。} virtual void set(unsigned p){pages=p。} } private: unsigned pages。 }。 ref class ExlPrint:public IPrint,public ISwitch{ public: virtual void print(){ Console::WriteLine(Print Micorsoft Excel Page {0},page)。} property unsigned page{ virtual unsigned get(){return pages。} virtual void set(unsigned p){pages=p。} } virtual void on(){ Console::WriteLine(Micorsoft Excel ,the printer is on...)。} virtual void off(){Console::WriteLine(Micorsoft Excel ,the printer is off...)。} private: unsigned pages。 }。 int main(arraySystem::String ^ ^args) { DocPrint ^doc1=gew DocPrint。 doc1page=10。 doc1print()。 ExlPrint ^excel1=gew ExlPrint。 excel1page=20。 excel1print()。 excel1on()。 IPrint ^iptr=gew DocPrint。 iptrpage=9。 iptrprint()。 iptr=excel1。 iptrpage=15。 iptrprint()。 return 0。 } 數(shù)組 托管數(shù)組的基本概念 –托管數(shù)組是指由 CLR管理的數(shù)組,它在托管堆中創(chuàng)建,能夠自動(dòng)執(zhí)行垃圾回收。 –托管數(shù)組與標(biāo)準(zhǔn) C++數(shù)組存在較大區(qū)別,托管數(shù)組從 System::Array類(lèi)派生,從該類(lèi)繼承了許多方法和屬性,如排序、查找、清空數(shù)組、數(shù)組拷貝及計(jì)算數(shù)組長(zhǎng)度等方法。 托管數(shù)組基 類(lèi)的常用方法 方法 說(shuō)明 Clear 將數(shù)組的一系列元素設(shè)置為零、 false或 null Clone 創(chuàng)建 Array的淺表副本 Copy 將一個(gè) Array的一部分元素復(fù)制到另一個(gè) Array中 CopyTo 已重載。 將當(dāng)前一維 Array 的所有元素復(fù)制到指定的一維 Array 中 Find(T) 搜索與指定謂詞定義的條件匹配的元素,然后返回整個(gè) Array中的第一個(gè)匹配項(xiàng) FindAll(T) 檢索與指定謂詞定義的條件匹配的所有元素 GetLength 獲取一個(gè) 32位整數(shù),該整數(shù)表示 Array的指定維中的元素?cái)?shù) GetValue 獲取當(dāng)前 Array中指定元素的值 Resize(T) 將數(shù)組的大小更改為指定的新大小 Reverse 反轉(zhuǎn)一維 Array或部分 Array中元素的順序 Sort 已重載。對(duì)一維 Array對(duì)象中的元素進(jìn)行排序 ToString 返回表示當(dāng)前 Object 的 String BinarySearch 使用二進(jìn)制搜索算法在一維的排序 Array 中搜索值。 數(shù)組 托管數(shù)組的內(nèi)容及定義 ? 托管數(shù)組可以分為值類(lèi)型、引用類(lèi)型、及本地指針類(lèi)型(即數(shù)組元素保存本地對(duì)象的指針)。 ? 托管數(shù)組通用定義形式如下: arraytype1[, dimension]^var = gew arraytype2[, dimension](val[,val...]) 數(shù)組 一給托管數(shù)組定義 arraytype1^var = gew arraytype2(val) ? 定義一維值類(lèi)型托管數(shù)組 v0、 v v v3。 arrayint^ v0 = gew arrayint(10){0, 1, 2}。 arrayint^ v1 = gew arrayint{0, 1, 2}。 arrayInt32^ v2 = {0, 1, 2}。 arrayint ^v3=gew arrayint(3)。 v1[0]=0。 v1[1]=2。 v1[2]=3。 數(shù)組 ? 引用類(lèi)型托管數(shù)組定義形式如下 arraytype1^^var = gew arraytype2^(val) 引用類(lèi)型與值類(lèi)型數(shù)組的差別在于數(shù)組的元素是引用。 arrayString^^ gc1 = gew arrayString^(10){one, two, three}。 arrayString^^ gc2 = {one, two, three}。 arrayString^^ gc3=gew arrayString^(3)。 String ^s=three。 gc3[0]=gew String(one)。 gc3[1]=gew String(two)。 gc3[2]=s。 for(int i=0。i10。i++) Console::Write({0,8},gc1[i])。 數(shù)組 ? 引用類(lèi)型托管數(shù)組定義形式如下 arraytype1^^var = gew arraytype2^(val) 引用類(lèi)型與值類(lèi)型數(shù)組的差別在于數(shù)組的元素是引用。 arrayString^^ gc1 = gew arrayString^(10){one, two, three}。 arrayString^^ gc2 = {one, two, three}。 arrayString^^ gc3=gew arrayString^(3)。 String ^s=three。 gc3[0]=gew String(one)。 gc3[1]=gew String(two)。 gc3[2]=s。 for(int i=0。i10。i++) Console::Write({0,8},gc1[i])。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1