原创 條款06:若不想使用編譯器自動生成的函數,就該明確拒絕

爲了阻止class支持copy構造函數或copy assignment操作符,可以將它們聲明爲private,但是這個做法並不安全,因爲member函數和friend函數還是可以調用你的private函數。除非你不去定義它們,那麼如果不慎

原创 條款8:不能讓異常逃離析構函數,否則難以想象

1、c++並不禁止析構函數吐出異常,但它不鼓勵你這樣做。 例:vector存的結構是class的話,當vector被銷燬時,如果兩個class在析構的時候拋出異常,程序若不是結束執行就是導致不明確行爲。   2、如果析構函數必須執行一個

原创 條款04

1、C++規定,對象的成員變量(自定義類型)的初始化動作發生在進入構造函數本體之前,在構造函數內不是初始化,而是賦值操作。初始化的發生時間更早,發生於這些成員的default 構造函數被自動調用之時(比進入對象的構造函數的時間要更早)。

原创 c/c++/java筆試面試推薦書籍(部分)

       2014屆校招基本慢慢收尾,現特將本人和小夥伴們的求職血淚史記錄,並且推薦一些書籍供學弟學妹們參考,以壯我皇家理工之名。        首先得感謝百度的師兄,他教會了我很多東西,致以很深的謝意。另外還得感謝一起求職的小夥伴

原创 條款05

1、class Empty{ }; 當c++處理過空類之後,編譯器會爲它聲明一個拷貝構造函數,一個賦值運算符和一個析構函數,還有default構造函數。所有這些函數都是public且inline的。   唯有當這些函數被需要時,它們纔會被

原创 條款01——條款03

1、extern int x;   如果外部變量不在文件的開頭定義,其有效的作用範圍只限於定義處到文件終了。如果在定義點之前的函數想引用該全局變量,則應該在引用之前用關鍵字extern對該變量作外部變量聲明,表示該變量是一個將在下面定義的

原创 多維數組和指針

一維數組名即是一個指針常量,它代表數組第一個元素的地址,知道一維數組的長度,那麼可以通過數組名輸出一維數組的所有元素: #include <stdio.h> int main(void) {     int i;     int 

原创 條款7

1、c++指出,當derivedclass對象經由一個base class指針被刪除,而該base class帶着一個non-virtual析構函數,其結果未有定義——實際執行時通常發生的是對象derived成分沒被銷燬。這是形成資源泄露

原创 常量字符串的存儲

int main(){ char str1[] = "hello world"; char str2[] = "hello world"; char *str3 = "hello world";

原创 指針使C威力無窮!

1、 未初始化和非法的指針   int  *a; *a = 12; 聲明瞭一個名爲a的指針變量,但沒有對它進行初始化,所以沒辦法預測12將存儲在什麼地方。 無論是靜態還是動態,聲明一個指向整型的指針都不會創建用於存儲整型值的內存空間。 如

原创 第一篇c++問題總結,寫在這裏……

1.面向對象程序設計(object-orientedprogramming)的核心思想?   核心思想是數據抽象、繼承和動態綁定。通過使用數據抽象,將類的接口與實現分離(c++primer第7章);使用繼承,可以定義相似的類型並對其相似