青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0
1、 C++ 定義了哪些類(lèi)型轉(zhuǎn)換操作符?分別有什么作用?

 

定義了四個(gè)操作符:static_castconst_castdynamic_castreinterpret_cast

 

static_cast可以被用于強(qiáng)制類(lèi)型轉(zhuǎn)換(例如,non-const對(duì)象轉(zhuǎn)換為const對(duì)象,int轉(zhuǎn)換為double等等),它還可以用于很多這樣的轉(zhuǎn)換的反向轉(zhuǎn)換(例如,void*指針轉(zhuǎn)換為有類(lèi)型指針,基類(lèi)指針轉(zhuǎn)換為派生類(lèi)指針)。但是它不能將一個(gè)const對(duì)象轉(zhuǎn)換為一個(gè)non-const對(duì)象(只有const-cast能做到)。它最接近于C-style的轉(zhuǎn)換。

const_cast一般用于強(qiáng)制消除對(duì)象的常量性。它是唯一能做到這一點(diǎn)的C++風(fēng)格的強(qiáng)制類(lèi)型。

dynamic_cast主要用于執(zhí)行“安全的向下轉(zhuǎn)型”。也就是說(shuō),要確定一個(gè)對(duì)象是否是一個(gè)繼 承體系中的一個(gè)特定類(lèi)型。它是唯一不能用舊風(fēng)格語(yǔ)法執(zhí)行的強(qiáng)制類(lèi)型轉(zhuǎn)換,也是唯一可能有重大運(yùn)行時(shí)代價(jià)的強(qiáng)制轉(zhuǎn)換。

reinterpret_cast是特意用于底層的強(qiáng)制轉(zhuǎn)換,導(dǎo)致實(shí)現(xiàn) 依賴(lài)(implementation-dependent)(就是說(shuō),不可移植)的結(jié)果例如,將一個(gè)指針轉(zhuǎn)型為一個(gè)整數(shù)。這樣 的強(qiáng)制轉(zhuǎn)換在底層代碼以外應(yīng)該極為罕見(jiàn)。

 

2、 C++ 定義了哪些訪問(wèn)控制關(guān)鍵字?分別有什么作用?

 

簡(jiǎn)單可以歸為以下兩種描述:

1)一個(gè)類(lèi)友元(包含友元函數(shù)或者友元類(lèi)的成員函數(shù)或者友元類(lèi)的所有成員函數(shù))可以訪問(wèn)該類(lèi)的任何成員(包 括成員變量及成員方法)。

2)除去友元外,private成員只有該類(lèi)自身的成員函數(shù)可 以訪問(wèn),protected成員只有該類(lèi)及其派生類(lèi)的成員函數(shù)可 以訪問(wèn),public成員該類(lèi)及其派生類(lèi)的成員函數(shù)和 對(duì)象都可以訪問(wèn)。

 

3、 類(lèi)的繼承方式和區(qū)別?

 

派生類(lèi)繼承方式的影響

類(lèi)的繼承方式有三種:privateprotectedpublic

1private屬性不能被繼承。

2

使用private繼承,父類(lèi)的protectedpublic屬性在子類(lèi)中變?yōu)?/span>private
使用protected繼承,父類(lèi)的protectedpublic屬性在子類(lèi)中變?yōu)?/span>protected
使用public繼承,父類(lèi)中的protectedpublic屬性不發(fā)生改變;

 

4、 在什么情形下調(diào)用虛函數(shù)不會(huì)有多態(tài)性?為什么?

 

由 虛函數(shù)實(shí)現(xiàn)的動(dòng)態(tài)多態(tài)性的方法:

1.      在 基類(lèi)用virtual聲明成員函數(shù)為虛函數(shù)。

2.      在 派生類(lèi)中重新定義此函數(shù)。

3.      定 義一個(gè)指向基類(lèi)對(duì)象的指針變量,并使它指向同一類(lèi)族中需要調(diào)用該函數(shù)的對(duì)象。

4.      通 過(guò)該指針變量調(diào)用此虛函數(shù),此時(shí)調(diào)用的就是指針變量指向的對(duì)象的同名函數(shù)。

因 此,總結(jié)如下:

1、基類(lèi)函數(shù)未使用virtual聲明而子類(lèi)中使用virtual關(guān)鍵字聲明時(shí)調(diào)用虛函數(shù)不會(huì)有多態(tài) 性;

2、基類(lèi)使用virtual而子類(lèi)未重新實(shí)現(xiàn)該虛函數(shù)則不會(huì)有多態(tài) 性;

3、  使用子類(lèi)創(chuàng)建的對(duì)象轉(zhuǎn)換成基類(lèi)類(lèi)型調(diào)用 虛函數(shù)不會(huì)有多態(tài)性;

5.      構(gòu)造函數(shù)調(diào)用順序。

class Y {...}
class X : public Y {...}
X one;


構(gòu)造函數(shù)的調(diào)用順序是下面的順序:

Y(); // 基類(lèi)的構(gòu)造函數(shù)
X(); //
繼承類(lèi)的構(gòu)造函數(shù)

 

對(duì)于多基類(lèi)的情況,下面是一個(gè)例子:

class X : public Y, public Z
X one;

構(gòu)造函數(shù)以聲明的次序調(diào)用。

Y(); // 基類(lèi)構(gòu)造函數(shù)首先被調(diào)用
Z();
X();

 

虛基類(lèi)的構(gòu)造函數(shù)在任何非虛基類(lèi)構(gòu)造函 數(shù)前調(diào)用。如果構(gòu)造中包括多個(gè)虛基類(lèi),它們的調(diào)用順序以聲明順序?yàn)闇?zhǔn)。..

 

如果虛類(lèi)是由非虛類(lèi)派生而來(lái),那非虛類(lèi) 的構(gòu)造函數(shù)要先被調(diào)用。下面是一個(gè)例子:

class X : public Y, virtual public Z
X one;

調(diào)用順序如下:

Z(); // 虛基類(lèi)初始化
Y(); //
非虛基類(lèi)
X(); //
繼承類(lèi)

下面是一個(gè)復(fù)雜的例子:

class base;
class base2;
class level1 : public base2, virtual public base;
class level2 : public base2, virtual public base;
class toplevel : public level1, virtual public level2;
toplevel view;

構(gòu)造函數(shù)調(diào)用順序如下:

base(); // 虛基類(lèi)僅被構(gòu)造一次
base2();
level2(); //
虛基類(lèi)
base2();
level1();
toplevel();

如果類(lèi)繼承中包括多個(gè)虛基類(lèi)的實(shí)例,基類(lèi)只被初始化一次。

1、如果類(lèi)里面有成員類(lèi),成員類(lèi)的構(gòu)造函數(shù)優(yōu)先被調(diào)用;

2、創(chuàng)建派生類(lèi)的對(duì)象,基類(lèi)的構(gòu)造函數(shù)函數(shù)優(yōu)先被調(diào)用(也優(yōu)先于派 生類(lèi)里的成員類(lèi));

3 基類(lèi)構(gòu)造函數(shù)如果有多個(gè)基類(lèi)則構(gòu)造函數(shù)的調(diào)用順序是某類(lèi)在類(lèi)派生表 中出現(xiàn)的順序而不是它們?cè)诔蓡T初始化表中的順序;
4
、成員類(lèi)對(duì)象構(gòu)造函數(shù)如果有多個(gè)成員類(lèi)對(duì)象則構(gòu)造函數(shù)的調(diào)用順序是對(duì)象在類(lèi)中被聲明的順序而不是它們出現(xiàn)在成員初始化表中的順序;
5
、派生類(lèi)構(gòu)造函數(shù)
作為一般規(guī)則派生類(lèi)構(gòu)造函數(shù)應(yīng)該不能直接向一個(gè)基類(lèi)數(shù)據(jù)成員賦值而是把值傳遞給適當(dāng)?shù)幕?lèi)構(gòu)造函數(shù)否則兩 個(gè)類(lèi)的實(shí)現(xiàn)變成緊耦合的(tightly coupled)將更加難于正確地修改或擴(kuò)展基類(lèi)的實(shí)現(xiàn)。(基類(lèi)設(shè)計(jì)者的責(zé)任是提供一組適當(dāng)?shù)幕?lèi)構(gòu)造函數(shù))

 

6. RTTI是什么,怎么實(shí)現(xiàn)的?舉個(gè)例子。

RTTI即運(yùn)行時(shí)類(lèi)型識(shí)別,通過(guò)它程序能夠使用 基類(lèi)的指針或引用來(lái)檢查這些指針或引用所指的對(duì)象的實(shí)際派生類(lèi)型。

RTTI提供了一下兩個(gè)非常有用的操作符:

1typeid操作符,返回指針和引用所指的實(shí)際類(lèi)型

2dynamic_cast操作符,將基類(lèi)類(lèi)型的指針或引用 安全地轉(zhuǎn)換為派生類(lèi)型的指針或引用。


from:
http://m.shnenglu.com/changshoumeng/archive/2010/07/21/120992.html

posted on 2010-07-23 17:15 chatler 閱讀(237) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): C++_BASIS
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(10)

隨筆分類(lèi)(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺(jué)這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺(jué)得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜亚洲福利在线老司机| 亚洲欧美国产精品va在线观看| 久久国产精品久久国产精品| 91久久亚洲| 老司机午夜免费精品视频| 欧美有码在线观看视频| 亚洲免费在线观看| 中文有码久久| 一区二区三区视频在线看| 亚洲精品国产精品国产自| 国产精品免费一区二区三区在线观看 | 欧美一区二区高清在线观看| 一本久久综合亚洲鲁鲁| 亚洲精品一区二区三区99| 亚洲日本va午夜在线电影| 亚洲人成亚洲人成在线观看图片 | 欧美激情精品久久久六区热门| 久久综合伊人77777蜜臀| 久久野战av| 久久久青草青青国产亚洲免观| 久久久久久久一区二区三区| 麻豆av一区二区三区久久| 欧美r片在线| 欧美精品v日韩精品v国产精品| 欧美理论电影在线观看| 欧美日韩一区二区三区在线观看免 | 国产一区二区三区久久久久久久久| 国产精品一区二区久久精品| 免费中文日韩| 蜜臀av一级做a爰片久久| 久久久久欧美精品| 亚洲淫性视频| 亚洲一区二区三区777| 亚洲午夜羞羞片| 欧美日韩国产在线一区| 欧美电影电视剧在线观看| 亚洲一级二级| 亚洲午夜伦理| 久久精品首页| 欧美劲爆第一页| 国产精品久久中文| 怡红院av一区二区三区| 亚洲美女诱惑| 久久久夜色精品亚洲| 亚洲少妇一区| 国产精品福利网站| 亚洲视频一区二区| 亚洲精品一区二区网址 | 欧美成人午夜剧场免费观看| 亚洲午夜在线观看| 久久综合五月天婷婷伊人| 亚洲免费视频一区二区| 欧美日韩亚洲一区| 一区二区高清| 亚洲美女性视频| 欧美日韩国产精品一卡| 久久精品九九| 欧美第十八页| 裸体女人亚洲精品一区| 亚洲国产精品999| 免费在线播放第一区高清av| 欧美在线啊v| 黄色国产精品一区二区三区| 久久久久久久网| 久久精品官网| 亚洲激情校园春色| 亚洲精品一区二区三区av| 欧美四级剧情无删版影片| 亚洲伊人久久综合| 亚洲欧洲av一区二区三区久久| 国产伦精品一区二区三区在线观看| 亚洲欧美制服另类日韩| 午夜影院日韩| 亚洲国产精品一区制服丝袜| 亚洲高清不卡| 欧美亚洲第一区| 久久精品观看| 欧美第一黄色网| 亚洲欧美一区二区激情| 久久aⅴ国产欧美74aaa| 最近看过的日韩成人| 一本色道久久综合精品竹菊| 国产午夜精品视频| 欧美激情亚洲视频| 国产精品激情偷乱一区二区∴| 久久精品1区| 欧美激情精品久久久久久大尺度| 亚洲宅男天堂在线观看无病毒| 欧美在线黄色| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美卡通另类91av| 亚洲缚视频在线观看| 日韩亚洲一区在线播放| 午夜在线视频观看日韩17c| 日韩一区二区免费高清| 国产精品jizz在线观看美国| 久久精品在线播放| 欧美国产成人精品| 欧美在现视频| 欧美—级a级欧美特级ar全黄| 亚洲欧美色一区| 老司机午夜精品视频| 亚洲综合精品四区| 欧美91视频| 久久久久久9| 国产精品sss| 亚洲高清免费| 狠久久av成人天堂| 亚洲一区二区精品| 一区二区三区精品在线| 麻豆精品91| 久久人人97超碰精品888| 欧美视频免费在线观看| 91久久香蕉国产日韩欧美9色| 激情综合中文娱乐网| 日韩网站在线观看| 亚洲欧洲一区| 久久久久久有精品国产| 久久精彩视频| 国产情侣一区| 亚洲免费人成在线视频观看| 99视频在线观看一区三区| 裸体歌舞表演一区二区| 久久一二三四| 国产一区久久久| 香蕉久久a毛片| 欧美在线国产| 国产精品系列在线播放| 亚洲一级一区| 午夜天堂精品久久久久| 国产精品久久久久久久久久妞妞| 亚洲日本中文| 一区二区三区日韩精品| 欧美激情第8页| 亚洲欧洲精品一区二区三区不卡 | 久久久久中文| 另类av导航| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲一区日本| 欧美一区二区三区久久精品茉莉花| 欧美日韩一区二区免费在线观看| 亚洲毛片在线观看| 亚洲午夜精品福利| 国产精品色在线| 午夜精品一区二区三区电影天堂| 欧美一区三区二区在线观看| 国产欧美三级| 久热精品视频在线观看| 在线不卡中文字幕播放| 亚洲国产精品成人综合色在线婷婷 | 国产精品一二三| 午夜精品亚洲| 欧美 日韩 国产在线| 亚洲精品视频免费观看| 欧美日韩性生活视频| 中文久久精品| 久久人人超碰| 一本色道久久精品| 国产精品三级久久久久久电影| 欧美影院成人| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美日韩国产综合网 | 亚洲欧洲综合| 篠田优中文在线播放第一区| 经典三级久久| 欧美日韩亚洲一区二区三区| 亚洲欧美日韩国产另类专区| 欧美jizz19性欧美| 亚洲女爱视频在线| 亚洲国产va精品久久久不卡综合| 欧美日韩精品久久| 欧美一区二区三区在| 亚洲精品裸体| 久热精品视频在线| 午夜精品婷婷| 99ri日韩精品视频| 黑人一区二区| 国产精品久久久久久av下载红粉| 久久久久欧美精品| 亚洲在线电影| 99re66热这里只有精品3直播| 久久永久免费| 欧美一区免费视频| 中文国产成人精品久久一| 原创国产精品91| 国产日韩av高清| 国产精品扒开腿爽爽爽视频| 欧美电影免费观看大全| 欧美在线看片| 亚洲伊人第一页| 99精品欧美一区二区三区综合在线| 美日韩在线观看| 久久激情综合网| 午夜精品久久久久久久久久久久久| 最新日韩欧美| 亚洲国产导航| 在线欧美不卡| 好吊日精品视频| 国产美女一区| 国产日韩1区|