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

posts - 18, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

C++ 面試題

Posted on 2010-04-25 15:00 ~William~ 閱讀(1582) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): c++基礎(chǔ)

C++ 面試題

1.類(lèi)成員指針

Class test

{

Public:

         Int fun(int) const;

         Int fun(int);

         Static int fun(int);

         Int iTemp;

}

1.1   非靜態(tài)成員函數(shù)指針
定義:
int (Test::*pFun)(int) = &Test::fun;
int (Test::*pFunConst)(int)const = &Test::fun;
使用:
Test a;
const Test b;
(a.*pFun)(2)
(a.*pFunConst)(2);
(b.*pFunConst)(2);
不能用(b.*pFun)(2);

1.2   非靜態(tài)成員變量
int Test::*pInt = &Test::iTemp;
(a.*pInt) = 3;

1.3   靜態(tài)成員函數(shù)指針
int (*pFun)() = &Test::fun;
int (*pFun)() = Test::fun; 都正確;(注:定義無(wú)域操作符)
使用:
(*pFun)()
pFun() 都正確;

2.非成員函數(shù)指針和靜態(tài)成員函數(shù)一致。
3.非成員函數(shù)和靜態(tài)成員函數(shù)上不允許修飾符。例如 void fun() const; void fun() volatile;
但非靜態(tài) 成員函數(shù)允許constvolatile等修飾符。
4.變量修飾符

 
auto:指定數(shù)據(jù)存儲(chǔ)在棧中。局部變量默認(rèn)為auto。該修飾符不能用于成員變量和全局變量。
static
局部變量表示存儲(chǔ)在靜態(tài)空間,全局變量表示不允許外部引用。
volatile
:表示該變量可能隨時(shí)改變,不要做任何假設(shè)優(yōu)化。
mutale
去除成員變量的const屬性。
extern
:全局變量默認(rèn)為extern屬性,表示可被外部引用,此時(shí)與static相對(duì)。
extern int a =2;
表示定義一個(gè)可被外部引用的變量。
extern int a;
表示引用外部變量。

 

5.數(shù)據(jù)類(lèi)型隱式轉(zhuǎn)換

短數(shù)據(jù)->長(zhǎng)數(shù)據(jù) (eg: float -> double)
有符號(hào)->無(wú)符號(hào) (eg: int -> unsigned int )PS: 所以 int(-1)>unsigned int(1);
低精度->高精度 (eg: int -> float)

6.memcpy 防重疊覆蓋機(jī)制,strcpy 沒(méi)有。
7.float表示

共計(jì)32位,折合4字節(jié)
由最高到最低位分別是第313029……0
31
位是 符號(hào)位,1表示該數(shù)為負(fù),0反之。
30-23
位,一共8位是指數(shù)位。
22-0
位,一共23位是尾數(shù)位。
8位分為一組,分成4組,分別是A組、B組、C組、D組。
每一組是一個(gè)字節(jié),在內(nèi)存中逆序存儲(chǔ),即:DCBA

8.不能在類(lèi)的聲明中初始化類(lèi)常量,而只能在構(gòu)造函數(shù)初始化列表來(lái)初始化
9.類(lèi)中的枚舉常量不占用對(duì)象的存儲(chǔ)空間
10.有時(shí)候函數(shù)原本不需要返回值,但為了增加靈活性如支持鏈?zhǔn)奖磉_(dá),可以附加返回值。
11.賦值函數(shù),應(yīng)當(dāng)用引用傳遞的方式返回String 對(duì)象。如果用值傳遞的方式,雖然功能仍然正確,但由于return 語(yǔ)句要把 *this 拷貝到保存返回值的外部存儲(chǔ)單元之中,增加了不必要的開(kāi)銷(xiāo),降低了賦值函數(shù)的效率。
12.對(duì)于非內(nèi)部數(shù)據(jù)類(lèi)型的對(duì)象而言,光用maloc/free 無(wú)法滿(mǎn)足動(dòng)態(tài)對(duì)象的要求。對(duì)象在創(chuàng)建的同時(shí)要自動(dòng)執(zhí)行構(gòu)造函數(shù), 對(duì)象在消亡之前要自動(dòng)執(zhí)行析構(gòu)函數(shù)。如果用free 釋放“new 創(chuàng)建的動(dòng)態(tài)對(duì)象,那么該對(duì)象因無(wú)法執(zhí)行析構(gòu)函數(shù)而可能導(dǎo)致程序出錯(cuò)。如果用delete 釋放“malloc 申請(qǐng)的動(dòng)態(tài)內(nèi)存,理論上講程序不會(huì)出錯(cuò),但是該程序的可讀性很差。
13.如果用new 創(chuàng)建對(duì)象數(shù)組,那么只能使用對(duì)象的無(wú)參數(shù)構(gòu)造函數(shù),delete時(shí)如果對(duì)象沒(méi)有析構(gòu)函數(shù),則deletedelete[]是功能相同的。
14.只能靠參數(shù)而不能靠返回值類(lèi)型的不同來(lái)區(qū)分重載函數(shù)。編譯器根據(jù)參數(shù)為每個(gè)重載函數(shù)產(chǎn)生不同的內(nèi)部標(biāo)識(shí)符。并不是兩個(gè)函數(shù)的名字相同就能構(gòu)成重載。全局函 數(shù)和類(lèi)的成員函數(shù)同名不算重載,因?yàn)楹瘮?shù)的作用域不同。
15.關(guān)鍵字inline

必須與函數(shù)定義體放在一起才能使函數(shù)成為內(nèi)聯(lián),僅將inline 放在函數(shù)聲明前面不起任何作用。定義在類(lèi)聲明之中的成員函數(shù)將自動(dòng)地成為內(nèi)聯(lián)函數(shù)。
以下情況不宜使用內(nèi)聯(lián):
1)如果函數(shù)體內(nèi)的代碼比較長(zhǎng),使用內(nèi)聯(lián)將導(dǎo)致內(nèi)存消耗代價(jià)較高。
2)如果函數(shù)體 內(nèi)出現(xiàn)循環(huán),那么執(zhí)行函數(shù)體內(nèi)代碼的時(shí)間要比函數(shù)調(diào)用的開(kāi)銷(xiāo)大。

16.只有靜態(tài)常量整型數(shù)據(jù)成員才可以在類(lèi)中初始化,普通成員只能在初始化列表或函數(shù)內(nèi)初始化,常量成員只能在初始化列表。成員對(duì)象初始化的次序完全不受它們?cè)?/span> 初始化表中次序的影響,只由成員對(duì)象在類(lèi)中聲明的次序決定。
17.拷貝構(gòu)造函數(shù)和賦值函數(shù)非常容易混淆,常導(dǎo)致錯(cuò)寫(xiě)、錯(cuò)用。拷貝構(gòu)造函數(shù)是在對(duì)象被創(chuàng)建時(shí)調(diào)用的,而賦值函數(shù)只能被已經(jīng)存在了的對(duì)象調(diào)用。
18.不想編寫(xiě)拷貝構(gòu)造函數(shù)和賦值函數(shù),又不允許別人使用編譯器生成的,則只需將拷貝構(gòu)造函數(shù)和賦值函數(shù)聲明為私有函數(shù),不用編寫(xiě)代碼。
19.“const T”“T const”總是都被允許的,而且是等效的。
注意在常量指針(const pointer)中,“const”永遠(yuǎn)出現(xiàn)在“*”之后。
例如:
int *const p1 = q; //
指向int 變量的常量指針
int const* p2 = q; //
指向int 常量的指針
const int* p3 = q; //
指向int 常量的指針
20.一個(gè)常見(jiàn)的微妙問(wèn)題是,一個(gè)函數(shù)風(fēng)格的宏并不遵守函數(shù)參數(shù)傳遞的規(guī)則。
21.沒(méi)有引用數(shù)組,但可有指向數(shù)組的引用,并且保留數(shù)組的邊界。
22.左值擁有保存值的位置,而右值則沒(méi)有相關(guān)地址,只是簡(jiǎn)單值。
23.負(fù)索引是可以的,如p[-2](-2)[p]都是可以的(p必然不能是數(shù)組名),但必須保持不越界。
 sum=p()+q()+r();不能保證p(),q(),r()調(diào)用的順序。
逗號(hào)運(yùn)算符","可以保證求值順序.result= ( p(),q(),r() );是先求p(),q(),然后將r()賦給result
24.在if的條件里聲明變量,且可在真假分支里面使用。
const int * const * p;p是個(gè)指針,指向常指針的,常指針指向一個(gè)常量int
25.不能用空白初始化列表來(lái)規(guī)定默認(rèn)的對(duì)象初始化.

class a;
a A(); //
會(huì)警告,看起來(lái)像函數(shù)聲明
a *p=new a(); //ok
a *p=new a;   //ok

26.可以寫(xiě)一句只有數(shù)字的代碼,如1234;(void)0;可以編譯執(zhí)行,相當(dāng)于nop
27.給函數(shù)指針賦值時(shí)可以對(duì)函數(shù)名取地址也可以不取,通過(guò)函數(shù)指針調(diào)用函數(shù)時(shí)可以用*也可不用。
28.static_cast可以轉(zhuǎn)換基本數(shù)據(jù)類(lèi)型(int->char)void*和有類(lèi)型指針、基類(lèi)和派生類(lèi)指針的轉(zhuǎn)換(多重繼承也行,它可重新計(jì)算偏移地址),但是不能轉(zhuǎn)換如(int*->char*)
29.dynamic_cast主要用于執(zhí)行"安全的向下轉(zhuǎn)型",reinterpret_cast可執(zhí)行任何轉(zhuǎn)換,const_cast執(zhí)行去 const轉(zhuǎn)換。
30.將取地址運(yùn)算符用到完全限定的類(lèi)成員名(包括變量和函數(shù)),就能獲得指向成員的地址。使用形式為"X::*"來(lái)聲明一個(gè)指向類(lèi)X成員的指針。注意聲明成員 函數(shù)指針的時(shí)候不能像普通函數(shù)指針可以省略&*的使用,但靜態(tài)成員函數(shù)則除外,它和普通函數(shù)一致。成員指針和普通指針不一樣,并非指向一個(gè)內(nèi)存 區(qū)域,而是相當(dāng)于一個(gè)結(jié)構(gòu)的偏移量,當(dāng)它和具體的對(duì)象結(jié)合就能指向特定對(duì)象的特定成員。
31.當(dāng)把派生類(lèi)對(duì)象賦給基類(lèi)對(duì)象的時(shí)候會(huì)產(chǎn)生切割現(xiàn)象,即針對(duì)派生類(lèi)的數(shù)據(jù)和行為將產(chǎn)生切割。
32.多維數(shù)組的第1個(gè)元素是數(shù)組而非普通類(lèi)型。
33.在含有單參數(shù)構(gòu)造函數(shù)的類(lèi)中注意隱式轉(zhuǎn)換。如String s="Hello";
34.函數(shù)對(duì)象是重載函數(shù)調(diào)用運(yùn)算符的類(lèi)對(duì)象。
35.引用需要用左值進(jìn)行初始化,但指向常量的引用除外,編譯器將創(chuàng)建一個(gè)臨時(shí)左值。如const int c=12;//ok 一般情況下編譯器產(chǎn)生的臨時(shí)對(duì)象的生命期在它所在的最大表達(dá)式范圍內(nèi),但用臨時(shí)對(duì)象初始化常量對(duì)象的引用時(shí)會(huì)讓編譯器保證臨時(shí)對(duì)象和引用生命周期一樣。
36.可以將基類(lèi)的成員指針(變量或函數(shù))安全的轉(zhuǎn)換為指向派生類(lèi)成員的指針,但反之則不安全。
37.函數(shù)參數(shù)的傳遞是采用拷貝構(gòu)造函數(shù)而非賦值操作。對(duì)未初始化的對(duì)象賦值可能會(huì)出現(xiàn)意外,如類(lèi)中含有未初始化指針。
38.聲明但不定義私有的拷貝構(gòu)造和賦值運(yùn)算將會(huì)關(guān)閉類(lèi)的復(fù)制操作。并且賦值運(yùn)算、拷貝構(gòu)造函數(shù)和析構(gòu)函數(shù)不會(huì)被繼承,對(duì)派生類(lèi)重載賦值運(yùn)算時(shí)需要調(diào)用基類(lèi)的賦 值運(yùn)算。
39.在構(gòu)造函數(shù)里對(duì)成員變量初始化,比較好的方式是使用初始化列表。在初始化列表中靜態(tài)成員和數(shù)組不能被初始化。
類(lèi)的初始化順序是虛擬基類(lèi)的成員->非虛基類(lèi)成員->類(lèi)自身成員,和初始化列表的順序無(wú)關(guān)。
含有虛擬基類(lèi)和不含的類(lèi)在成員布局上不一樣,含有虛擬基類(lèi)的類(lèi)將虛擬基類(lèi)的數(shù)據(jù)放在最后面。另外如B:virtual A,C:virtual A,D:B,C;(均是虛繼承)D的構(gòu)造函數(shù)將對(duì)A初始化一次(即使在初始化列表沒(méi)有顯式初始化A)B,C將不再對(duì)A初始化。
所有靜態(tài)數(shù)據(jù)(全局變量和靜態(tài)存儲(chǔ)變量)在使用前如未初始化其值都為0.全局變量可以存儲(chǔ)在靜態(tài)初始化區(qū)和未初始化區(qū)。
40.RVO返回值優(yōu)化,是指在函數(shù)返回中執(zhí)行拷貝初始化到直接初始化(使用帶非對(duì)象參數(shù)的構(gòu)造函數(shù))的轉(zhuǎn)換,NRVRVO類(lèi)似,但使用命名局部變量來(lái)保存返 回值。p160
41.重載、覆蓋和隱藏的區(qū)別

重載的特征:在同一個(gè)類(lèi),函數(shù)名相同,參數(shù)不同,virtual可有可無(wú)。
覆蓋的特征:在兩個(gè)類(lèi)(基類(lèi)和派生類(lèi)),函數(shù)名和參數(shù)都相同, 且必須有virtual關(guān)鍵字。
隱藏的特征:基類(lèi)函數(shù)名和派生類(lèi)函數(shù)名相同參數(shù)不同,且不管是否有關(guān)鍵字。或函數(shù)名、參數(shù)均相同,但基類(lèi) 函數(shù)沒(méi)有virtual(有的話就是覆蓋)
不能覆蓋而只能隱藏基類(lèi)非虛函數(shù)。

42.相同類(lèi)型的所有對(duì)象公用一個(gè)虛函數(shù)表,在單繼承下不管有多少個(gè)虛函數(shù)都只有一個(gè)虛函數(shù)表指針。覆蓋就是在為派生類(lèi)構(gòu)造虛函數(shù)表時(shí)用派生類(lèi)的函數(shù)地址替換基 類(lèi)成員函數(shù)地址的過(guò)程。
43.使用常量類(lèi)成員可能在對(duì)類(lèi)對(duì)象賦值的時(shí)候產(chǎn)生問(wèn)題。
44.有時(shí)候我們可能會(huì)看到 if (NULL == p) 這樣古怪的格式。不是程序?qū)戝e(cuò)了,是程序員為了防止將 if (p == NULL) 誤寫(xiě)成 if (p = NULL),而有意把p NULL 顛倒。

 

 


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久午夜激情| 99re热精品| 欧美精品日本| 免费观看在线综合色| 欧美国产日韩亚洲一区| 欧美寡妇偷汉性猛交| 欧美精品久久99| 欧美性大战久久久久| 国产亚洲欧美一区二区三区| 国产在线不卡精品| 亚洲欧洲一级| 欧美一级成年大片在线观看| 美日韩丰满少妇在线观看| 欧美成人资源| 亚洲一区二区三区四区五区黄 | 欧美国产第一页| 欧美日韩午夜激情| 国产美女精品人人做人人爽| 精品电影一区| 亚洲午夜免费视频| 久久精品中文| 亚洲人成网站777色婷婷| 99re热这里只有精品视频| 午夜精品久久久久久久久| 免费美女久久99| 国产精品激情av在线播放| 狠狠操狠狠色综合网| 一区二区三区四区五区精品视频| 欧美伊久线香蕉线新在线| 亚洲国产aⅴ天堂久久| 亚洲天堂av高清| 欧美大片专区| 黄色av日韩| 亚洲欧美日韩精品一区二区| 欧美激情精品久久久久久大尺度| 亚洲在线成人精品| 欧美精品高清视频| 国产综合18久久久久久| 亚洲欧美日韩成人高清在线一区| 欧美成人一区二免费视频软件| 亚洲一区二区三区在线观看视频| 欧美精品v日韩精品v韩国精品v| 国内久久视频| 久久精品日韩欧美| 美女黄毛**国产精品啪啪| 99视频在线精品国自产拍免费观看 | 亚洲综合色丁香婷婷六月图片| 欧美国产精品劲爆| 久久国产精品第一页| 国产精品香蕉在线观看| 亚洲小视频在线观看| 亚洲日本久久| 欧美日本高清| 亚洲精品中文字幕在线| 亚洲精品1区| 女同性一区二区三区人了人一| 在线成人性视频| 久久综合国产精品| 久久久久久黄| 在线日本成人| 欧美黄色免费网站| 猛干欧美女孩| 亚洲精品乱码久久久久| 亚洲国产精品一区二区第一页| 狼人社综合社区| 亚洲国产视频直播| 亚洲国产成人久久综合| 欧美韩日一区二区| 一本大道av伊人久久综合| 亚洲精品乱码久久久久久蜜桃91| 欧美久久在线| 亚洲综合色噜噜狠狠| 亚洲欧美一区二区三区在线| 国产亚洲一本大道中文在线| 久久亚洲私人国产精品va媚药 | 久久青草久久| 亚洲精品欧美日韩| 日韩午夜黄色| 国产精品一区二区久激情瑜伽| 欧美在线播放高清精品| 羞羞答答国产精品www一本| 一区二区三区中文在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 久久五月激情| 在线亚洲观看| 欧美一区二区| 亚洲免费精品| 亚洲女性裸体视频| 亚洲第一天堂无码专区| 亚洲三级影院| 国产一级揄自揄精品视频| 欧美韩国一区| 国产精品一区二区三区免费观看 | 欧美激情视频一区二区三区免费| 欧美日韩免费观看一区=区三区| 午夜精品视频一区| 久久综合99re88久久爱| 亚洲欧洲精品成人久久奇米网 | 久久国产精品高清| 久久五月激情| 亚洲综合精品四区| 麻豆九一精品爱看视频在线观看免费| 99热免费精品| 久久久久久午夜| 亚洲欧美精品伊人久久| 免费在线观看精品| 久久精品视频在线看| 欧美日韩国产经典色站一区二区三区| 亚洲欧美一区二区三区极速播放| 另类亚洲自拍| 久久久久久久欧美精品| 欧美午夜精品一区二区三区| 欧美激情导航| 狠狠色丁香婷婷综合| 亚洲视频一二区| 99精品欧美一区| 美女黄网久久| 久久亚洲图片| 国产亚洲综合在线| 亚洲午夜久久久久久久久电影网| 亚洲久久一区二区| 麻豆视频一区二区| 狼人社综合社区| 国产视频久久久久| 亚洲免费一在线| 午夜电影亚洲| 国产精品成人va在线观看| 亚洲日韩欧美视频| 亚洲精品影视在线观看| 狂野欧美激情性xxxx欧美| 蜜桃av综合| 在线精品视频在线观看高清| 午夜日韩在线| 久久久www| 国产综合在线视频| 午夜精品一区二区三区四区| 亚洲欧美999| 国产精品视频午夜| 亚洲欧美中文在线视频| 久久国产一区| 精品成人a区在线观看| 久久综合电影一区| 亚洲国产成人av好男人在线观看| 91久久黄色| 欧美精品一区三区在线观看| 亚洲欧洲中文日韩久久av乱码| 亚洲美女视频在线免费观看| 欧美激情一区二区在线| 亚洲精品孕妇| 亚洲男女自偷自拍| 国产欧美一区二区三区久久人妖| 午夜亚洲性色视频| 蜜乳av另类精品一区二区| 亚洲欧洲一区二区在线播放| 欧美啪啪一区| 亚洲欧美日韩网| 免费成人高清| 亚洲天堂成人| 国语自产精品视频在线看| 乱中年女人伦av一区二区| 亚洲精品中文字幕在线观看| 午夜精品亚洲| 亚洲国产清纯| 亚洲日本无吗高清不卡| 国产欧美一区二区三区视频 | 亚洲电影免费观看高清完整版| 制服丝袜激情欧洲亚洲| 国产精品女主播在线观看| 亚洲影视在线播放| 亚洲少妇中出一区| 国产麻豆视频精品| 久久婷婷久久| 欧美高清在线精品一区| 夜夜嗨av一区二区三区中文字幕 | 一区二区欧美日韩视频| 国产精品美女久久| 久久嫩草精品久久久久| 欧美激情精品久久久久久蜜臀| 一区二区三区偷拍| 欧美在线视频日韩| 夜夜嗨av一区二区三区四季av | 亚洲二区在线观看| 欧美成人免费全部| 亚洲在线观看| 欧美成人免费大片| 亚洲欧美一区二区三区久久| 久久躁日日躁aaaaxxxx| 欧美亚洲一区二区在线观看| 欧美国产日韩二区| 美女成人午夜| 黄色免费成人| 欧美在线精品一区| 久久成人精品无人区| 国产精品久久久久久一区二区三区 | 欧美精品尤物在线| 久久在线视频| 久久精品国产亚洲精品| 久久精品中文| 亚洲一区久久久| 亚洲精品一区二区三|