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

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://www.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>
            欧美一区二区三区视频在线 | 欧美不卡福利| 亚洲国产婷婷| 久久国产精品免费一区| 在线日韩一区二区| 亚洲国产精品ⅴa在线观看| 免费人成精品欧美精品| 国产精品99久久99久久久二8| 亚洲精品中文字幕在线观看| 欧美日韩视频不卡| 欧美在线观看日本一区| 久久精品人人做人人爽电影蜜月| 1769国产精品| 一区二区三区欧美在线| 国产色视频一区| 亚洲成色777777在线观看影院 | 亚洲精品小视频| 国产精品中文字幕欧美| 欧美成人亚洲成人| 欧美日韩精品免费在线观看视频| 午夜精品久久久久久久99热浪潮 | 国产老女人精品毛片久久| 久久婷婷国产综合国色天香| 欧美护士18xxxxhd| 欧美在线视频播放| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲视频播放| 另类激情亚洲| 欧美诱惑福利视频| 欧美黑人多人双交| 蜜臀久久99精品久久久画质超高清| 欧美另类视频| 麻豆精品网站| 国产视频自拍一区| 亚洲日本欧美| 亚洲高清成人| 欧美专区18| 午夜精品久久久久久久久久久久久| 久久一区精品| 久久噜噜亚洲综合| 国产精品久久久久久一区二区三区 | 亚洲精品国产精品乱码不99按摩| 亚洲男人影院| 亚洲视频在线观看一区| 美女网站久久| 久久综合色婷婷| 国产片一区二区| 99成人在线| 日韩午夜黄色| 欧美福利影院| 亚洲国产精品一区二区www在线 | 欧美日韩高清在线| 亚洲第一区在线观看| 久久精品视频在线看| 亚洲欧美成人综合| 欧美日韩精品免费看| 亚洲国产精品成人| 亚洲激情成人在线| 久久久国际精品| 久久久久久久999精品视频| 国产精品久久久久aaaa| 99热这里只有精品8| 日韩网站免费观看| 欧美区在线观看| 亚洲精品综合久久中文字幕| 亚洲精品综合精品自拍| 欧美国产一区视频在线观看| 欧美激情在线免费观看| 亚洲国产mv| 欧美激情1区2区| 亚洲国产中文字幕在线观看| 亚洲精品日韩在线观看| 欧美久久电影| 亚洲午夜性刺激影院| 欧美一级日韩一级| 国产一区二区视频在线观看| 欧美制服第一页| 欧美激情亚洲视频| 99视频精品免费观看| 欧美三区在线观看| 亚洲在线日韩| 老司机免费视频一区二区| 亚洲第一视频| 欧美日韩国产综合久久| 亚洲综合社区| 美国十次成人| 亚洲午夜精品一区二区| 国产精品久久久免费| 欧美综合二区| 亚洲精品欧美日韩专区| 欧美一级欧美一级在线播放| 激情久久久久久久久久久久久久久久| 亚洲精品永久免费精品| 午夜在线观看免费一区| 136国产福利精品导航网址| 欧美日韩国产va另类| 亚洲综合电影一区二区三区| 男男成人高潮片免费网站| 在线视频亚洲| 一区在线播放| 国产精品免费福利| 葵司免费一区二区三区四区五区| 亚洲人被黑人高潮完整版| 欧美影院在线| 亚洲午夜电影网| 欧美成人在线免费视频| 亚洲影院色无极综合| 亚洲第一区中文99精品| 午夜一区在线| 中文一区在线| 亚洲激情国产精品| 国产一区二区三区不卡在线观看| 欧美大片一区二区| 久久久中精品2020中文| 亚洲网站在线看| 亚洲精选在线观看| 欧美福利小视频| 久久婷婷丁香| 久久久视频精品| 性欧美超级视频| 亚洲午夜电影在线观看| 亚洲三级电影在线观看| 国产综合色在线视频区| 国产精品乱码久久久久久| 欧美连裤袜在线视频| 免费成人av在线看| 久久女同精品一区二区| 久久av一区二区三区漫画| 亚洲一区免费看| 亚洲夜间福利| 日韩视频免费| 日韩小视频在线观看| 亚洲国产精品久久精品怡红院 | 亚洲精品一二三| 亚洲国产视频直播| 亚洲二区视频| 亚洲高清视频在线| 亚洲高清在线视频| 亚洲高清在线播放| 亚洲日本成人| 亚洲精品国精品久久99热| 亚洲黄色小视频| 亚洲人成人一区二区三区| 亚洲国产精品久久精品怡红院| 伊人成年综合电影网| 激情久久综合| 亚洲国产日韩在线一区模特| 亚洲国产mv| 一本久久综合亚洲鲁鲁| 在线中文字幕日韩| 亚洲欧美一区二区三区久久 | 欧美成年人视频网站欧美| 欧美成人自拍视频| 亚洲电影免费观看高清完整版在线 | 国产毛片一区二区| 黄色一区二区在线观看| 国内精品久久久久久久影视麻豆| 国内外成人在线视频| 亚洲国产另类精品专区| 亚洲美女黄网| 午夜欧美精品| 乱码第一页成人| 亚洲人成在线观看网站高清| 99精品视频免费观看视频| 亚洲欧美日本视频在线观看| 久久精品成人一区二区三区蜜臀| 久久综合狠狠综合久久综合88| 欧美激情一区在线| 国产精品一区免费观看| 尤物九九久久国产精品的特点| 亚洲精品久久久久久久久| 亚洲深夜激情| 欧美成人在线免费观看| 一本色道综合亚洲| 久久久午夜视频| 欧美性做爰猛烈叫床潮| 国产字幕视频一区二区| av成人免费在线观看| 久久黄色小说| 亚洲伦理自拍| 久久精品成人| 久久国产精品一区二区三区四区 | 亚洲午夜成aⅴ人片| 久久全球大尺度高清视频| 欧美日韩亚洲精品内裤| 国外成人在线| 亚洲永久免费| 欧美激情欧美激情在线五月| 亚洲小说欧美另类婷婷| 欧美国产在线观看| 在线观看不卡av| 小处雏高清一区二区三区| 亚洲高清色综合| 欧美一区二区视频在线观看2020 | 欧美日韩一区二区三区免费看| 国产一区在线看| 午夜欧美大尺度福利影院在线看| 亚洲国产精品日韩| 免费久久久一本精品久久区| 国产色综合网|