C++隨筆_3

1.有以下程序段

int * p;  
p =   ______malloc(sizeof(int));  

若要求使p指向一個int型的動態(tài)存儲單元,在橫線處應(yīng)填入的是?
答:( int * )
解析:malloc返回一個void*類型的指針刃唐,需要強(qiáng)制轉(zhuǎn)化成int*類型的指針豌鹤,這樣才能表明指針的地址和指向內(nèi)存單元的大小陋桂。

2.以下程序

#include <stdio.h>
void fun( char ** p)
{
int i;
for(i=0;i<4;i + + )printf("% s",p[i]);
}
main( )
{
char *s[6]={ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWX" };
fun(s);   
printf("\n");
}

程序運(yùn)行后的輸出結(jié)果是?

答:ABCDEFGHIJKLMNOP
解析:以上語句定義了一個指針數(shù)組 s。首先這是一個數(shù)組柄瑰,這個數(shù)組里存儲的是指針茬射,也就是說s[1], s[2] ...等存儲的都是指針管引,類型是 char*闸迷。而數(shù)組名是指向第一個元素的常量指針嵌纲,因此 s 是指向指針的指針,所以函數(shù) fun 的形參定義是 char **腥沽。fun(s) 將指針 s 的值傳遞給形參 p逮走,所以 p = s。

3.有如下程序今阳,執(zhí)行后輸出的結(jié)果是( )

#include <iostream.h>
class cla{
static int n;
public:
 cla(){n++;}
~cla(){n--;}
static int get_n(){return n;}
};
int cla::n= 0;
int main()
{
   cla *p =new cla;
   delete p;
   cout<<"n="<<cla::get_n()<<endl;
   return 0;
}  

答:n=0
解析:類的實(shí)例化:cla *p = new cla言沐,p分配在棧上邓嘹,p指向的對象分配在堆上酣栈。n為靜態(tài)成員變量险胰,沒有this指針,屬于類域矿筝,所有對象共享起便。
實(shí)例化——調(diào)用構(gòu)造函數(shù),所以n++窖维;
delete——調(diào)用析構(gòu)函數(shù)榆综,所以n--。
最后輸仍舊為0铸史。

4.關(guān)于類與對象鼻疮,下面哪一種說法是錯誤的?
A.一個對象是某個類的一個實(shí)例
B.一個實(shí)例是某個類型經(jīng)實(shí)例化所產(chǎn)生的一個實(shí)體
C.創(chuàng)建一個對象必須指定被實(shí)例化的一個類
D.一個類的多個對象之間不僅持有獨(dú)立的數(shù)據(jù)成員琳轿,而且成員函數(shù)也是獨(dú)立的
答:D
解析:靜態(tài)成員變量判沟、靜態(tài)成員函數(shù)是由同一類中的所有對象共享的。

5.

#include<iostream>
using namespace std;
class A{
public:
void test()
{ printf("test A"); }
};
int main(){
A* pA = NULL;
pA->test();
return 0;
}

其實(shí)這個是可以正常運(yùn)行的
原因如下:

因為對于非虛成員函數(shù)崭篡,C++這門語言是靜態(tài)綁定的挪哄。這也是C++語言和其它語言Java, Python的一個顯著區(qū)別。以此下面的語句為例:
pA->test();
這語句的意圖是:調(diào)用對象 pA 的 test 成員函數(shù)琉闪。如果這句話在Java或Python等動態(tài)綁定的語言之中迹炼,編譯器生成的代碼大概是:
找到 pA 的 test 成員函數(shù),調(diào)用它颠毙。(注意斯入,這里的找到是程序運(yùn)行的時候才找的,這也是所謂動態(tài)綁定的含義:運(yùn)行時才綁定這個函數(shù)名與其對應(yīng)的實(shí)際代碼蛀蜜。有些地方也稱這種機(jī)制為遲綁定刻两,晚綁定。)
但是對于C++涵防。為了保證程序的運(yùn)行時效率闹伪,C++的設(shè)計者認(rèn)為凡是編譯時能確定的事情,就不要拖到運(yùn)行時再查找了壮池。所以C++的編譯器看到這句話會這么干:
1:查找 pA 的類型偏瓤,發(fā)現(xiàn)它有一個非虛的成員函數(shù)叫 test 。(編譯器干的)
2:找到了椰憋,在這里生成一個函數(shù)調(diào)用厅克,直接調(diào)A:: test ( pA )。
所以到了運(yùn)行時橙依,由于 test ()函數(shù)里面并沒有任何需要解引用 pA 指針的代碼证舟,所以真實(shí)情況下也不會引發(fā)segment fault硕旗。這里對成員函數(shù)的解析,和查找其對應(yīng)的代碼的工作都是在編譯階段完成而非運(yùn)行時完成的女责,這就是所謂的靜態(tài)綁定漆枚,也叫早綁定。
正確理解C++的靜態(tài)綁定可以理解一些特殊情況下C++的行為抵知。

5.C和Objective-C的混合使用墙基,以下描述錯誤的是()
選項:
A.cpp文件只能使用C/C++代碼
B.cpp文件include的頭文件中,可以出現(xiàn)objective-C的代碼
C.mm文件中混用cpp直接使用即可
D.cpp使用objective-C的關(guān)鍵是使用接口刷喜,而不能直接使用代碼

答:B
解析:obj-c 的編譯器處理后綴為 m 的文件時残制,可以識別 obj-c 和 c 的代碼,處理 mm 文件可以識別 obj-c,c,c++ 代碼掖疮,但 cpp 文件必須只能用 c/c++ 代碼初茶,而且 cpp 文件 include 的頭文件中,也不能出現(xiàn) obj-c 的代碼浊闪,因為 cpp 只是 cpp恼布。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市规揪,隨后出現(xiàn)的幾起案子桥氏,更是在濱河造成了極大的恐慌,老刑警劉巖猛铅,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件字支,死亡現(xiàn)場離奇詭異,居然都是意外死亡奸忽,警方通過查閱死者的電腦和手機(jī)堕伪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栗菜,“玉大人欠雌,你說我怎么就攤上這事「沓铮” “怎么了富俄?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長而咆。 經(jīng)常有香客問我霍比,道長,這世上最難降的妖魔是什么暴备? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任悠瞬,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘浅妆。我一直安慰自己望迎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布凌外。 她就那樣靜靜地躺著辩尊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪趴乡。 梳的紋絲不亂的頭發(fā)上对省,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機(jī)與錄音晾捏,去河邊找鬼。 笑死哀托,一個胖子當(dāng)著我的面吹牛惦辛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仓手,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胖齐,長吁一口氣:“原來是場噩夢啊……” “哼雨席!你這毒婦竟也來了截碴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤瞬沦,失蹤者是張志新(化名)和其女友劉穎添坊,沒想到半個月后剿另,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贬蛙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年雨女,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阳准。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡氛堕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出野蝇,到底是詐尸還是另有隱情讼稚,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布绕沈,位于F島的核電站锐想,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏七冲。R本人自食惡果不足惜痛倚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澜躺。 院中可真熱鬧蝉稳,春花似錦抒蚜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至收津,卻和暖如春饿这,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撞秋。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工长捧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吻贿。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓串结,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舅列。 傳聞我的和親對象是個殘疾皇子肌割,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容