原创 通過初始化列表初始的情況

在構造函數中,以下幾類的成員變量必須用初始化列表初始化:1、類成員爲const類型或引用類型2、類成員爲沒有默認構造函數的類3、在繼承關係中,派生類必須在其初始化列表中調用基類的構造函數原因是,const對象或引用只能初始化而不能賦值。構造

原创 賦值兼容原則

在C++中,無論哪種繼承方式下派生類都會把父類所有的數據繼承,區別在於是否能訪問賦值兼容規則如下:1.可以直接用派生類對象給基類對象賦值2.可以直接用派生類對象的地址給基類指針賦值3.可以使用派生類對象爲基類的引用直接進行初始化但該原則不能

原创 C++中空類有沒有大小?

C語言不允許定義一個空的結構體,但在C++中,與結構體概念相同的類卻允許空定義,那這個空的類有沒有大小呢?在sizeof(Test)之後我們會發現,他的大小爲1個字節。那麼這個1字節是哪裏來的呢?其實在底層,系統都會爲空類分配1字節的空間大

原创 List的實現總結

STL_list的實現方法總結list是一個在常數範圍內在任意位置進行插入和刪除的序列式容器,可進行雙向迭代;底層是雙向鏈表結構;與forword_list相似,區別在forword_list是單鏈表;而與其他序列式容器相比(array,v

原创 爲什麼C++支持函數重載而C不允許

首先我們要了解什麼是函數重載:函數重載是函數的一種特殊情況,C++允許在同一作用域中聲明幾個功能類似的同名函數,這些同名函數的形參列表(參數個數 或 類型 或 順序)必須不同,常用來處理實現功能類似數據類型不同的問題。 那

原创 針對某些編譯器不能使用 bool 類型的解決方法

最近發現某些編譯器(例如一個朋友用的vs2010)在使用 bool 這個類型寫函數的時候編譯器提示不識別這個類型,查了一下發現,一些編譯器認爲bool這個類型不安全,自己想了一個可以代替bool的寫法,給小白們看看 用枚舉的方法定義一個名爲

原创 關於函數調用的基礎知識

關於函數調用我想說,很多函數都是需要相應的頭文件,例如pow函數就需要調用頭文件math.h,pow的用法是計算一個雙浮點型數的n次方,例如要計算3的立方則可以表示爲pow(3,3)。此處需要注意的是,pow函數所計算的數字必須是雙

原创 成爲C大神玩家的第一天。

C語言說來和我是沒什麼緣分的,我本來的期望職業是一名廚子,高高的帽子大大的肚子還有手裏一把四季不變的大勺。可生活不像程序,按下編譯,再按下運行,它就會按你想的那樣去進行。最終一個擅長文科的男孩子還是走進了在大家眼裏更適合自己的郵電大