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

正文內(nèi)容

windows編程基礎(chǔ)新手入門(mén)資料-資料下載頁(yè)

2025-06-25 23:39本頁(yè)面
  

【正文】 float fScore[3]。 // 三門(mén)課程成績(jī)}。float CStuscore::Average(void) // 在類體外部定義{ return (float)((fScore[0] + fScore[1] + fScore[2])/)。}本例中用關(guān)鍵詞class聲明了名為CStuscore的類。在類的聲明中,描述學(xué)生的姓名、學(xué)號(hào)與三門(mén)課程成績(jī)的數(shù)據(jù)strName、strStuNo、fScore用private定義為私有數(shù)據(jù)成員。這表明數(shù)據(jù)成員strName、strStuNo、fScore只能在類中使用,而不能在類外使用。對(duì)學(xué)生成績(jī)信息進(jìn)行處理的函數(shù)Average、getName和getNo用關(guān)鍵詞public聲明成公有成員函數(shù),這樣就可在外部程序中通過(guò)getName和getNo函數(shù)分別來(lái)獲取學(xué)生姓名和學(xué)號(hào)數(shù)據(jù),通過(guò)Average函數(shù)獲取學(xué)生的平均成績(jī)??梢?jiàn),類中的私有數(shù)據(jù)成員只能通過(guò)公有接口函數(shù)(像getName和getNo函數(shù))來(lái)訪問(wèn),從而保證數(shù)據(jù)的安全性。類CStuscore中,成員函數(shù)getName和getNo的聲明和定義是在類體中同時(shí)進(jìn)行的,而函數(shù)Average是在類體中聲明,在類體外實(shí)現(xiàn)的,注意函數(shù)Average實(shí)現(xiàn)中函數(shù)名前面一定要用域作用符“::”指明該函數(shù)所屬的類。習(xí)慣上,往往將類的聲明和實(shí)現(xiàn)分開(kāi)來(lái)編寫(xiě)代碼,,這也是Visual C++的一種規(guī)范。2.對(duì)象的定義和初始化同變量一樣,類聲明后,就可以定義該類的對(duì)象。類的對(duì)象也有好幾種定義方式。但由于“類”比任何數(shù)據(jù)類型都要復(fù)雜得多,為了提高程序的可讀性,真正將“類”當(dāng)成一個(gè)密閉、“封裝”的盒子(接口),在程序中應(yīng)盡量使用對(duì)象的聲明之后定義方式,即按下列格式進(jìn)行:類名 對(duì)象名表。其中,類名是已聲明過(guò)的類的標(biāo)識(shí)符,對(duì)象名可以有一個(gè)或多個(gè),多個(gè)時(shí)要用逗號(hào)隔開(kāi)。被定義的對(duì)象既可以是一個(gè)普通對(duì)象,也可以是一個(gè)數(shù)組對(duì)象或指針對(duì)象。例如:CStuscore one, *Stu, Stus[2]。這時(shí),one是類CStuscore的一個(gè)普通對(duì)象,Stu和Stus分別是該類的一個(gè)指針對(duì)象和對(duì)象數(shù)組。若對(duì)象是一個(gè)指針,則還可像指針變量那樣進(jìn)行初始化,例如:CStuscore *two = amp。one??梢?jiàn),在程序中,對(duì)象的使用和變量是一樣的,只是對(duì)象還有成員的訪問(wèn)等手段。3.對(duì)象成員的訪問(wèn)一個(gè)對(duì)象的成員就是該對(duì)象的類所定義的數(shù)據(jù)成員和成員函數(shù)。訪問(wèn)對(duì)象的成員變量和成員函數(shù)與訪問(wèn)一般結(jié)構(gòu)的變量的方法是一樣的。對(duì)于普通對(duì)象,其訪問(wèn)格式如下:對(duì)象名.成員變量對(duì)象名.成員函數(shù)(參數(shù)表) 例如,()用來(lái)調(diào)用對(duì)象one中的成員函數(shù)getName,Stus[0].getNo()用來(lái)調(diào)用對(duì)象數(shù)組元素Stus[0]中的成員函數(shù)getNo。要注意,由于類的封裝性,每個(gè)成員均有聲明的訪問(wèn)屬性,一個(gè)類對(duì)象只能訪問(wèn)該類的公有型成員,而對(duì)于私有型成員則不能訪問(wèn),例如getName和getNo等公有成員可以由對(duì)象通過(guò)上述方式來(lái)訪問(wèn),但strName、strStuNo、fScore等私有成員不能被對(duì)象來(lái)訪問(wèn)。若對(duì)象是一個(gè)指針,則對(duì)象的成員訪問(wèn)格式如下:對(duì)象名成員變量對(duì)象名成員函數(shù)(參數(shù)表) “”是另一個(gè)表示成員的運(yùn)算符,它與“.”運(yùn)算符的區(qū)別是:“”用來(lái)表示指向?qū)ο蟮闹羔樀某蓡T,而“.”用來(lái)表示一般對(duì)象的成員。需要說(shuō)明的是,下面的兩種表示是等價(jià)的(對(duì)于成員函數(shù)也適用):對(duì)象指針名成員變量(*對(duì)象指針名).成員變量 例如,(*two).getName()與twogetName()等價(jià)??梢?jiàn),在C++中,類實(shí)際上是一種新的數(shù)據(jù)類型,它是對(duì)某一類對(duì)象的抽象。如同變量一樣,用“類”也可定義一個(gè)對(duì)象,此時(shí)的對(duì)象稱為類的實(shí)例。 構(gòu)造函數(shù)和析構(gòu)函數(shù)事實(shí)上,一個(gè)類總有兩種特殊的成員函數(shù):構(gòu)造函數(shù)和析構(gòu)函數(shù)。構(gòu)造函數(shù)的功能是在創(chuàng)建對(duì)象時(shí),給數(shù)據(jù)成員賦初值,即給對(duì)象初始化。析構(gòu)函數(shù)的功能是用來(lái)釋放一個(gè)對(duì)象,在對(duì)象刪除前,用它來(lái)做一些內(nèi)存釋放等清理工作,它與構(gòu)造函數(shù)的功能正好相反。1.構(gòu)造函數(shù)C++規(guī)定,在類的定義中是不能對(duì)數(shù)據(jù)成員進(jìn)行初始化的。為了能給數(shù)據(jù)成員設(shè)置某些初值,這時(shí)就要使用類的特殊成員函數(shù)——構(gòu)造函數(shù)。構(gòu)造函數(shù)的最大特點(diǎn)是在對(duì)象建立時(shí)它會(huì)被自動(dòng)執(zhí)行,因此用于變量、對(duì)象的初始化代碼一般放在構(gòu)造函數(shù)中。C++規(guī)定,一個(gè)類的構(gòu)造函數(shù)必須與相應(yīng)的類同名,它可以帶參數(shù),也可以不帶參數(shù),與一般的成員函數(shù)定義相同,可以重載,也可以有默認(rèn)的形參值。例如: include class CPerson{ public: CPerson(char *str, float h, float w) // A:構(gòu)造函數(shù) { strcpy(name, str)。 height = h。 weight = w。 } CPerson(char *str) // B:構(gòu)造函數(shù) { strcpy(name, str)。 } CPerson(float h, float w = 120)。 // C:構(gòu)造函數(shù) public: void print() { cout姓名:name\t身高:height\t體重:weightendl。 } private: char name[20]。 // 姓名 float height。 // 身高 float weight。 // 體重}。CPerson::CPerson(float h, float w){ height = h。 weight = w。}int main(){ CPerson one(DING)。 ()。 CPerson two(170, 130)。 ()。 CPerson three(DING, 170, 130)。 ()。 return 0。}++編譯器自帶的文件,稱為C++庫(kù)文件,它定義了標(biāo)準(zhǔn)輸入/輸出流的相關(guān)數(shù)據(jù)及其操作。cout表示標(biāo)準(zhǔn)輸出流對(duì)象(屏幕),“”是插入符,它將后面的內(nèi)容插入到cout中,即輸出到屏幕上。程序運(yùn)行的結(jié)果為:姓名:DING 身高:–+008 體重:–+008姓名:燙燙燙燙燙燙燙燙燙燙 身高:170 體重:130姓名:DING 身高:170 體重:130分析和說(shuō)明:① 類CPerson定義了3個(gè)重載的構(gòu)造函數(shù)(程序中用A、B、C標(biāo)明),這些構(gòu)造函數(shù)的重載必須按其規(guī)定進(jìn)行定義,要么參數(shù)個(gè)數(shù)不同,要么參數(shù)個(gè)數(shù)相同,但參數(shù)類型不相同。其中,構(gòu)造函數(shù)CPerson(float h, float w = 120),不僅設(shè)置了形參w的默認(rèn)值,而且還將該構(gòu)造函數(shù)的聲明在類中進(jìn)行,其定義在類體外實(shí)現(xiàn)。② 在主函數(shù)main中,("DING"),因而調(diào)用的是B構(gòu)造函數(shù),此時(shí)對(duì)象的私有數(shù)據(jù)成員name設(shè)定了初值“DING”,而height和weight初值沒(méi)有指定,它們的初值取決于對(duì)象的存儲(chǔ)類型,可能是默認(rèn)值或無(wú)效值。③ (170, 130),因而調(diào)用的是C構(gòu)造函數(shù),此時(shí)對(duì)象的私有數(shù)據(jù)成員height和weight初值分別設(shè)定為170、130,而name初值沒(méi)有指定,它可能是默認(rèn)值或無(wú)效值。④ (DING, 170, 130),因而調(diào)用的是A構(gòu)造函數(shù),此時(shí)對(duì)象的私有數(shù)據(jù)成員name、height和weight初值分別設(shè)定為DING、170和130。可見(jiàn),構(gòu)造函數(shù)提供了對(duì)象的初始化方式。若沒(méi)有定義任何構(gòu)造函數(shù),則編譯自動(dòng)為類隱式生成一個(gè)不帶任何參數(shù)的默認(rèn)構(gòu)造函數(shù),由于函數(shù)體是空塊,因此默認(rèn)構(gòu)造函數(shù)不進(jìn)行任何操作,僅僅為了對(duì)象創(chuàng)建時(shí)的語(yǔ)法需要。例如,對(duì)于CPerson類來(lái)說(shuō),默認(rèn)構(gòu)造函數(shù)的形式如下:CPerson( ) // 默認(rèn)構(gòu)造函數(shù)的形式{ }默認(rèn)構(gòu)造函數(shù)的目的是使下列對(duì)象定義形式合法:CPerson one。 // 即: ()。 會(huì)自動(dòng)調(diào)用默認(rèn)構(gòu)造函數(shù)此時(shí),由于對(duì)象one沒(méi)指定任何初值,因而編譯會(huì)自動(dòng)調(diào)用類中隱式生成的默認(rèn)構(gòu)造函數(shù)對(duì)其初始化。若當(dāng)類定義中指定了構(gòu)造函數(shù),則隱式的默認(rèn)構(gòu)造函數(shù)不再存在,因此,若對(duì)于前面定義的CPerson類來(lái)說(shuō),若有:CPerson four。 // 錯(cuò)誤則因?yàn)檎也坏侥J(rèn)構(gòu)造函數(shù)而出現(xiàn)編譯錯(cuò)誤。此時(shí),在類中還要給出默認(rèn)構(gòu)造函數(shù)的具體定義,即定義一個(gè)不帶任何參數(shù)的構(gòu)造函數(shù),稱為顯式的默認(rèn)構(gòu)造函數(shù),這樣才能對(duì)four進(jìn)行定義并初始化。另外,構(gòu)造函數(shù)的訪問(wèn)屬性必須是公有型(public),否則上述的類對(duì)象定義也是錯(cuò)誤的。2.析構(gòu)函數(shù)與構(gòu)造函數(shù)相對(duì)應(yīng)的是析構(gòu)函數(shù)(Destructor)。析構(gòu)函數(shù)是C++類中另一個(gè)特殊的成員函數(shù),它只是在類名稱前加上一個(gè)“~”符號(hào)(邏輯非),以與構(gòu)造函數(shù)功能相反。其格式如下: ~ 類名(){ … }當(dāng)對(duì)象的生存期結(jié)束后,或者當(dāng)使用delete釋放由new來(lái)分配動(dòng)態(tài)內(nèi)存的對(duì)象時(shí),析構(gòu)函數(shù)會(huì)被自動(dòng)調(diào)用。這樣,數(shù)據(jù)成員(尤其是用new為其開(kāi)辟的內(nèi)存空間)的釋放代碼就可放入析構(gòu)函數(shù)的函數(shù)體中,以便對(duì)象消失后自動(dòng)調(diào)用。需要說(shuō)明的是:① 每一個(gè)類最多只能有一個(gè)析構(gòu)函數(shù),且應(yīng)為public,否則類實(shí)例化后無(wú)法自動(dòng)調(diào)用析構(gòu)函數(shù)進(jìn)行釋放,但不能被重載,沒(méi)有任何參數(shù),也不返回任何值,函數(shù)名前也不能有任何關(guān)鍵詞(包括void)。例如:class CPerson{public: … ~CPerson( ) { } // 析構(gòu)函數(shù) …}。② 與類的其他成員函數(shù)一樣,析構(gòu)函數(shù)的定義也可在類體外進(jìn)行,但必須指明它所屬的類,且在類體中還必須有析構(gòu)函數(shù)的聲明。例如:
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1