Boolan C 第二週學習筆記

2021-07-26 07:02:49 字數 448 閱讀 7145

第二週的課堂筆記,主要記錄一些以前自己不知道得東西。

1.所謂的建構函式的三原則:

其實預設情況下,編譯器缺省會提供拷貝構造,拷貝賦值,析構函式,它們所執行的就是預設的賦值與析構操作。並不是所有自定義的類都需要手動去寫這些函式,這次課程提供的乙個典型的情況就是類成員裡有指標時的情況,因為指標new出來的那塊空間,編譯器提供的預設建構函式是不會去處理的,所以這時候需要自己寫著三個函式。

2.拷貝賦值一定要自己檢測

主要是為了對應=左右都是同一物件時的情況。

string& string::operator=(const string& str)

如上,沒有if的話,delete自己之後就麻煩了

3 new要對應delete

不然釋放時只能釋放掉第一塊空間

4.靜態成員函式可以被物件呼叫

Boolan C 第五周學習筆記

1.關於vptr和vtbl 之前的學習已經了解到c 多型主要靠虛函式實現,如果說c 的class在實現上相比c的struct有什麼開銷的話,那麼虛函式表 vtbl 的維護和每個物件例項裡虛表指標 vptr 將是比較明顯的開銷。對於如下三個類 class a virtual void vfunc2 v...

Boolan C 第六周學習筆記

談談stl容器vector vector作為一種連續性容器,是指它在記憶體的表現上,邏輯上相鄰的資料,在記憶體中也是連續的。這就保證它在訪問每個元素的操作時可以在固定的指令上通過偏移的方式去訪問,相比一般的陣列,它還有乙個明顯的特點就是大小可變。vector的空間是動態分配的,由於大小可變,一旦遇到...

第二週學習筆記

從課堂上的內容大體可以歸為如上,概念模型因為在具體使用當中較少接觸故簡單介紹其優點。下面將用較大篇幅詳細討論e r模型的實際使用和visio表示的意義。首先,要明白圖表中不同方框代表什麼,方框代表實體,而橢圓框代表屬性,那麼什麼是實體什麼又是屬性呢,那讓我們用乙個簡單的關係圖表來了解一下。這是乙個典...