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

天下

記錄修行的印記

求一個數,二進制表示中含有多少個1

// 1. 求一個數,二進制表示中含有多少個1.
int func(x)
{
    
int countx = 0;
    
while(x)
    {
        countx 
++;
        x 
= x&(x-1);
    }
    
return countx;


// 2. 請編寫函數 strcpy。
char *strcpy(char *strDest, const char *strSrc)
{
    
if ( strDest == NULL || strSrc == NULL)  // 必須
        return NULL ;
    
if ( strDest == strSrc)            // good
        return strDest ;
    
char *tempptr = strDest ;
    
while*strDest++ = *strSrc++ );
    
return tempptr ;
}

// 3.  下面關于“聯合”的題目的輸出?
union {
    
int i;
    
char x[2];
}a;
void main()
{
    a.x[
0= 10;
    a.x[
1= 1;
    printf(
"%d",a.i);
}
//答案:266 (低位低地址,高位高地址,內存占用情況是Ox010A)

// 4. 在C++ 程序中調用被C 編譯器編譯后的函數,為什么要加 extern "C"
首先,作為extern是C/C++語言中表明函數和全局變量作用范圍(可見性)的關鍵字,該關鍵字告訴編譯器,其聲明的函數和變量可以在本模塊或其它模塊中使用。
通常,在模塊的頭文件中對本模塊提供給其它模塊引用的函數和全局變量以關鍵字extern聲明。
例如,如果模塊B欲引用該模塊A中定義的全局變量和函數時只需包含模塊A的頭文件即可。
這樣,模塊B中調用模塊A中的函數時,在編譯階段,模塊B雖然找不到該函數,但是并不會報錯;它會在連接階段中從模塊A編譯生成的目標代碼中找到此函數
extern "C"是連接申明(linkage declaration),被extern "C"修飾的變量和函數是按照C語言方式編譯和連接的.

// 5. 關聯、聚合(Aggregation)以及組合(Composition)的區別?
關聯  是表示兩個類的一般性聯系,比如“學生”和“老師”就是一種關聯關系;
聚合  表示has
-a的關系,是一種相對松散的關系,聚合類不需要對被聚合類負責,如下圖所示,用空的菱形表示聚合關系:
        聚合可以表示為: 
class A {};  class B{ A* a; ..}
組合  表示contains
-a的關系,關聯性強于聚合:組合類與被組合類有相同的生命周期,組合類要對被組合類負責,采用實心的菱形表示組合關系:
        實現的形式是: 
class A{};   class B{ A a; }

// 6. 面向對象的三個基本特征,并簡單敘述之?
1. 封裝:將客觀事物抽象成類,每個類對自身的數據和方法實行protection(privateprotected,public)
2. 繼承:廣義的繼承有三種實現形式:實現繼承(指使用基類的屬性和方法而無需額外編碼的能力)、可視繼承(子窗體使用父窗體的外觀和實現代碼)、
         接口繼承(僅使用屬性和方法,實現滯后到子類實現)。前兩種(類繼承)和后一種(對象組合
=>接口繼承以及純虛函數)構成了功能復用的兩種方式。
3. 多態:是將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。
         簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。

// 7. 多態的作用?
主要是兩個:
1. 隱藏實現細節,使得代碼能夠模塊化;擴展代碼模塊,實現代碼重用;
2. 接口重用:為了類在繼承和派生的時候,保證使用家族中任一類的實例的某一屬性時的正確調用。
        
// 8. New delete 與malloc free 的聯系與區別?
答案:
都是在堆(heap)上進行動態的內存操作。用malloc函數需要指定內存分配的字節數并且不能初始化對象,
new 會自動調用對象的構造函數。delete 會調用對象的destructor,而free 不會調用對象的destructor.

// 9. 有哪幾種情況只能用intialization list 而不能用assignment?
答案:當類中含有const、reference 成員變量;基類的構造函數都需要初始化表。

// 10. main 函數執行以前,還會執行什么代碼?
答案:全局對象的構造函數會在main 函數之前執行。

// 11. 描述內存分配方式以及它們的區別?
1) 從靜態存儲區域分配。內存在程序編譯的時候就已經分配好,這塊內存在程序的整個運行期間都存在。例如全局變量,static 變量。
2) 在棧上創建。在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置于處理器的指令集。
3) 從堆上分配,亦稱動態內存分配。程序在運行的時候用malloc 或new 申請任意多少的內存,程序員自己負責在何時用free 或delete 釋放內存。
    動態內存的生存期由程序員決定,使用非常靈活,但問題也最多。

// 12. 當一個類A 中沒有生命任何成員變量與成員函數,這時sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什么沒有讓它為零.
答案:肯定不是零。舉個反例,如果是零的話,聲明一個class A[10]對象數組,而每一個對象占用的空間是零,這時就沒辦法區分A[0],A[1]…了。

// 13. static_cast, dynamic_cast和reinterpret_cast的區別和應用
C風格的強制類型轉換(Type Cast)很簡單,不管什么類型的轉換統統是:
TYPE b 
= (TYPE)a。
const_cast,字面上理解就是去const屬性。
static_cast,命名上理解是靜態類型轉換。如int轉換成char。
dynamic_cast,命名上理解是動態類型轉換。如子類和父類之間的多臺類型轉換。
reinterpret_cast,僅僅重新解釋類型,但沒有進行二進制的轉換。
//推薦: http://www.shenmiguo.com/archives/2009/275_cplus-type-cast.html

// 14. C++關鍵字:mutable、volatile、explicit以及__based
volatile: 一個定義為volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設這個變量的值了。精確地說就是,
        優化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里的備份。
        
// http://www.cnblogs.com/koya/articles/849158.html
mutable: 他只能用于類的非靜態和非常量數據成員.如果一個類的成員函數被聲明為const類型,表示該函數不會改變對象的狀態,
        也就是該函數不會修改類的非靜態數據成員.但是有些時候需要在該類函數中對類的數據成員進行賦值.這個時候就需要用mutable了
        
// http://www.360doc.com/content/10/0613/11/1595686_32846874.shtml
explicit
    它的作用是
"禁止單參數構造函數"被用于自動型別轉換,典型的例子是容器類型,在這種類型的構造函數中你可以將初始長度作為參數傳遞給構造函數.
__based: 
    該關鍵字主要用來解決一些和共享內存有關的問題,它允許指針被定義為從某一點開始算的32位偏移值,而不是內存種的絕對位置

explicit 它的作用是"禁止單參數的構造函數"被用于后臺自動類型轉換,意味著單參數構造函數不能用來創建隱式臨時對象!
否則一些寬松的規則將允許在沒有顯式類型轉換操作的情況下進行類型轉換。
考慮下面的例子:
IntCell obj;
obj 
= 37;//should not compile:type mismatch

C
++擁有寬松的規則,通常,單參數構造函數定義了一個隱式類型轉換,該轉換創建一個臨時對象,從而賦值(或函數參數)變成兼容的。
在本例中,編譯器試圖將
obj 
= 37;
轉換為
IntCell tempobj 
= 37;
obj 
= tempobj;


// 15. 類成員函數的重載、覆蓋和隱藏區別?
a.成員函數被重載的特征:
1)相同的范圍(在同一個類中);
2)函數名字相同;
3)參數不同;
4virtual 關鍵字可有可無。
b.覆蓋是指派生類函數覆蓋基類函數,特征是:
1)不同的范圍(分別位于派生類與基類);
2)函數名字相同;
3)參數相同;
4)基類函數必須有virtual 關鍵字。
c.“隱藏”是指派生類的函數屏蔽了與其同名的基類函數,規則如下:
1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字,基類的函數將被隱藏(注意別與重載混淆)。
2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有virtual 關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)

// 16. 如何打印出當前源文件的文件名以及源文件的當前行號?
cout << __FILE__ ;
cout
<<__LINE__ ;
__FILE__和__LINE__是系統預定義宏,這種宏并不是在某個文件中定義的,而是由編譯器定義的。

// 17. main 主函數執行完畢后,是否可能會再執行一段代碼,給出說明?
答案:可以,可以用_onexit 注冊一個函數,它會在main 之后執行.

// 18. 如何判斷一段程序是由C 編譯程序還是由C++編譯程序編譯的?
#ifdef __cplusplus
    cout
<<"c++";
#else
    cout
<<"c";
#endif


class IntCell
{
public :
    
explicit IntCell(int val=0):m_val(val){}
private:
    
int m_val;
};


posted on 2013-03-18 15:02 天下 閱讀(651) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導航

統計

常用鏈接

留言簿(4)

隨筆分類(378)

隨筆檔案(329)

鏈接

最新隨筆

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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亚洲v天堂网2018| 美女日韩在线中文字幕| 国产日韩一区| 亚洲在线国产日韩欧美| 欧美国产在线观看| 亚洲国产精品一区制服丝袜| 亚洲欧美日本国产有色| 欧美精品久久一区二区| 国产日韩一区| 亚洲影院一区| 亚洲精品久久久久| 欧美顶级艳妇交换群宴| 在线观看国产精品淫| 久久福利精品| 亚洲欧美日韩电影| 亚洲黄一区二区| 另类成人小视频在线| 国产亚洲毛片| 欧美怡红院视频一区二区三区| 91久久国产精品91久久性色| 老牛影视一区二区三区| 国产一区二区三区无遮挡| 亚洲综合欧美日韩| 一本不卡影院| 欧美日韩精品一区二区三区四区| 亚洲欧洲久久| 亚洲欧洲在线观看| 欧美人体xx| 亚洲视频精选| 欧美高清一区| 美女诱惑一区| 亚洲久久一区二区| 亚洲免费视频成人| 亚洲一区免费在线观看| 国产精品h在线观看| 91久久在线观看| 亚洲国产精品一区在线观看不卡 | 欧美一区二区三区视频在线 | **欧美日韩vr在线| 亚洲精品视频一区二区三区| 欧美激情亚洲国产| 欧美日韩在线播放三区| 先锋影音国产精品| 久久久久久久一区| 亚洲图片自拍偷拍| 久久精品国产精品亚洲| 亚洲美女免费精品视频在线观看| 在线视频一区观看| 亚洲国产精品久久久久婷婷老年| 亚洲精品资源美女情侣酒店| 国产精品一区视频网站| 欧美成人精品在线| 国产精品日韩精品| 亚洲激情视频在线播放| 国产欧美日韩综合一区在线观看| 欧美黑人在线观看| 国产女主播一区二区三区| 亚洲国产综合在线| 狠狠干狠狠久久| 亚洲天堂免费在线观看视频| 亚洲国产乱码最新视频| 亚洲欧美综合| 亚洲视频一二| 欧美精品一区在线播放| 免费亚洲电影在线观看| 国产日韩欧美在线播放不卡| 一二三四社区欧美黄| 亚洲国产婷婷香蕉久久久久久99| 午夜精品国产更新| 亚洲综合成人婷婷小说| 欧美1区3d| 久久综合狠狠综合久久激情| 国产精品色在线| 9i看片成人免费高清| 亚洲人成高清| 麻豆亚洲精品| 欧美肥婆bbw| 一区二区三区亚洲| 欧美伊人久久| 久久九九99| 国产亚洲日本欧美韩国| 亚洲综合欧美| 性欧美xxxx大乳国产app| 欧美午夜国产| 亚洲免费av电影| 一本久久综合| 欧美日韩一区二区在线| 99在线热播精品免费| 一区二区日韩| 欧美日本三区| 一区二区91| 午夜在线a亚洲v天堂网2018| 国产精品家庭影院| 亚洲欧美日韩人成在线播放| 久久www成人_看片免费不卡| 国产日韩欧美三级| 久久精品亚洲| 亚洲第一精品夜夜躁人人爽| 亚洲卡通欧美制服中文| 欧美日韩中文在线观看| 亚洲一区二区三区在线视频| 欧美一区二区日韩| 国产一区二区| 久久综合一区二区| 久久中文字幕一区| 亚洲先锋成人| 国产精品每日更新| 性做久久久久久久久| 欧美专区第一页| 国产在线精品一区二区夜色| 久久国产精品99精品国产| 可以看av的网站久久看| 亚洲国产精品悠悠久久琪琪| 欧美精品成人| 亚洲视频免费看| 久久国产福利| 亚洲狠狠丁香婷婷综合久久久| 欧美国产大片| 亚洲欧美精品一区| 欧美激情亚洲自拍| 亚洲一区二区三区免费在线观看| 国产色婷婷国产综合在线理论片a| 久久先锋资源| 亚洲视频碰碰| 麻豆精品一区二区av白丝在线| 日韩亚洲欧美成人| 国产精品日韩欧美一区二区| 久久精品盗摄| 夜夜嗨av一区二区三区四季av| 欧美在线免费一级片| 亚洲丶国产丶欧美一区二区三区| 欧美日韩精品一区视频| 欧美一区二区三区在线| 亚洲精品乱码久久久久久| 欧美一区二区三区男人的天堂| 亚洲啪啪91| 国产午夜精品久久久| 欧美精选在线| 久久成人免费| 亚洲午夜精品国产| 亚洲国产欧美精品| 久久久精彩视频| 正在播放亚洲一区| 亚洲高清免费视频| 国产日韩视频一区二区三区| 欧美日韩www| 蜜月aⅴ免费一区二区三区 | 久久久久久久91| 一本久道久久综合狠狠爱| 好看的亚洲午夜视频在线| 欧美日本在线一区| 久久人人看视频| 欧美一区二区播放| 亚洲一区二区三区四区五区黄| 亚洲精品久久| 欧美激情bt| 免费观看久久久4p| 久久蜜臀精品av| 久久精品国产96久久久香蕉| 亚洲午夜电影| 夜夜狂射影院欧美极品| 亚洲人成网站777色婷婷| 在线观看成人av电影| 黑人操亚洲美女惩罚| 国产日韩欧美综合一区| 国产精品私房写真福利视频| 国产精品久久久999| 国产精品成人观看视频免费| 欧美日韩第一页| 欧美日韩在线播| 欧美日韩在线另类| 欧美三级乱人伦电影| 欧美视频在线观看一区二区| 国产精品mv在线观看| 国产精品久久久久久久app| 国产精品高潮视频| 国产精品永久免费| 亚洲看片网站| 日韩视频在线免费| 亚洲三级免费| 在线观看国产精品网站| 韩国一区二区在线观看| 国产综合自拍| 亚洲国产99| 亚洲美女中文字幕| 亚洲欧洲午夜| 一本久道久久综合中文字幕| 亚洲无线视频| 久久国产手机看片| 久久影视精品| 亚洲国产高清在线| 日韩午夜一区| 午夜国产精品影院在线观看| 午夜精品久久久久久久99樱桃 | 影音先锋欧美精品|