欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C++知識問答2-創(chuàng)新互聯(lián)

1、static關(guān)鍵字在c語言和C++語言中各自有哪些不同用法?

創(chuàng)新互聯(lián)堅實的技術(shù)研發(fā)基礎(chǔ)贏得了行業(yè)內(nèi)的良好口碑,公司成立十余年來,為千余家企業(yè)提供過網(wǎng)站建設(shè)、軟件開發(fā)、搜索引擎優(yōu)化技術(shù)、互聯(lián)網(wǎng)大數(shù)據(jù)整合營銷服務(wù),多年的技術(shù)服務(wù)成功經(jīng)驗、眾多的客戶使我們能懂得更多,做得更好。"讓您的網(wǎng)站跑起來"是我們一直追求的目標!

解析:C++兼容C語言中對于static的定義;C++中多了對于面向?qū)ο筇匦韵嚓P(guān)的引用。

c語言中的作用:1)修飾變量;2)修飾函數(shù)。

1)修飾變量:a.修飾全局變量,改變?nèi)肿兞康淖饔糜颍蛊鋬H在聲明文件中可見,對其他文件不可見,限制其使用范圍;b.修飾局部變量,延長變量的聲明周期,作用域不變,普通局部變量隨著作用域結(jié)束,釋放其棧上內(nèi)存,用static修飾后,其內(nèi)存將在程序結(jié)束才進行釋放。

2)修飾函數(shù):和全局變量一樣,改變了函數(shù)被調(diào)用的范圍。

C++中的作用:被static修飾的變量/函數(shù),表示其屬于這個類,但是不屬于任一個特定的對象。

1)靜態(tài)數(shù)據(jù)成員,必須在類外進行初始化,因其不屬于任何一個對象;

2)靜態(tài)成員函數(shù):本身只能訪問靜態(tài)變量,不可以訪問其他非靜態(tài)成員變量。

2、面向?qū)ο笥心男┗咎匦裕?/p>

解析:面向?qū)ο蠡靖拍睿侯悾瑢ο螅^承;基本特征:封裝、繼承、多態(tài)。

1)封裝:【定義】數(shù)據(jù)和代碼捆綁在一起,避免外界干擾和不確定性訪問;【引申】注意與組合的區(qū)分,封裝指一個類內(nèi)數(shù)據(jù)方法獨立,對外開放限制;組合指不同對象之間包含關(guān)系。

2)繼承:【定義】讓某種類型對象獲得另一個類型對象的屬性和方法;

【功能】可以使用現(xiàn)有類,并在無需重新編寫原有類的情況下對這些功能進行擴展;

【方式】實現(xiàn)繼承(使用基類屬性和方法,無需額外編碼);接口繼承(使用基類的屬性和方法名稱,但子類必須提供實現(xiàn)),可視繼承(子窗體/類使用基窗體/類的外觀和實現(xiàn)代碼能力)。

3)多態(tài):【定義】同一事物表現(xiàn)出不同事物的能力,即向不同對象發(fā)送同一消息,不同的對象在接收時候會產(chǎn)生不同的行為。

【引申】:重載是不是多態(tài)?重載是一個類內(nèi)的不同方法,不屬于繼承。可以認為是廣義多態(tài),理解為編譯時候的靜態(tài)多態(tài),也可以認為其不是對象間調(diào)用形成,可以認為不是多態(tài),只有重寫才算多態(tài)。沒有明確定義。

【功能】多態(tài)性允許將父對象設(shè)置成為和一個更多的他的子對象相等的技術(shù),賦值后,父對象就可以根據(jù)當前賦值給它的子對象的特性調(diào)用不同的方式運作。也即接口重用。

【簡單概括】允許將子類類型的指針賦值給父類類型的指針。

3、虛函數(shù)相關(guān)介紹

1)繼承層次中,基類析構(gòu)函數(shù)為虛函數(shù):針對多態(tài)屬性,當單基類指針實際所指對象為繼承類對象,如果析構(gòu)函數(shù)不為虛函數(shù),當釋放該對象內(nèi)存時候,將只調(diào)用基類析構(gòu)函數(shù),使得繼承類對象的自有數(shù)據(jù)無法釋放,造成內(nèi)存泄漏問題;因此,需要將基類析構(gòu)函數(shù)定義為虛函數(shù);釋放該類對象內(nèi)存時候,先調(diào)用繼承類析構(gòu)函數(shù),然后在調(diào)用基類析構(gòu)函數(shù)。

2)構(gòu)造函數(shù)不能為虛函數(shù):a.構(gòu)造一個對象時候,必須知道對象的實際類型,而虛函數(shù)是在運行期間確定實際類型的。所以,如果構(gòu)造函數(shù)為虛函數(shù),則構(gòu)造一個對象時候,由于對象未構(gòu)造成功,編譯器不知道實際對象的類型,無法確定。b.虛函數(shù)實現(xiàn)依賴虛函數(shù)表,而虛函數(shù)表的指針vptr是在構(gòu)造函數(shù)中初始化的,所以如果構(gòu)造函數(shù)為虛函數(shù),虛函數(shù)表沒被初始化,無法進行。

3)虛函數(shù)運行代價:每個虛函數(shù)的對象需要維護一個虛函數(shù)表(通過虛指針指向這個虛函數(shù)表),因此在使用虛函數(shù)的時候都會產(chǎn)生一定的系統(tǒng)開銷。

4)inline/static/constructor這三種函數(shù)不能為虛函數(shù):inline是編譯時展開,必須有實體;static屬于class自己的類相關(guān),必須有實體,而且沒有this指針,無法調(diào)用虛函數(shù);constructor參見2)。

4、幾種繼承方式

解析:1)public繼承:派生類對象可以訪問基類中的公有成員,派生類成員函數(shù)可以訪問基類中的公有和受保護成員;

2)private繼承:基類的成員只能被直接派生類的成員訪問,無法再往下繼承;

3)protected繼承:基類的成員也只被直接派生類的成員訪問,無法再往下繼承;

4)虛繼承:為了解決多繼承時的命名沖突和冗余數(shù)據(jù)問題;虛繼承目的是為了讓某個類做出聲明,承諾愿意共享它的基類;典型代表為:C++標準庫中的iostream類。

使用多繼承經(jīng)常出現(xiàn)二義性,必須十分小心,一般只有比較簡單和不易出現(xiàn)二義性或者實在需要時候使用多繼承,能用單一繼承的就不用多繼承。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享文章:C++知識問答2-創(chuàng)新互聯(lián)
路徑分享:http://chinadenli.net/article2/epsic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)網(wǎng)站導(dǎo)航標簽優(yōu)化品牌網(wǎng)站設(shè)計網(wǎng)站維護外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作