C 物件導向高階程式設計(上) Boolan W2

2021-07-26 14:06:57 字數 1328 閱讀 7008

1、在不帶指標的類中可直接使用,編譯器預設的拷貝構造,拷貝賦值,在帶指標的類中需要手動重新編寫。

2、字串長度等於字元數+1,字串以『\0』結束

3、動態分配的記憶體需要利用析構函式釋放記憶體空間new/delete。

4、類中帶指標成員必須手動重寫拷貝構造與拷貝賦值

5、淺拷貝不帶指標的拷貝或者只拷貝指標不拷貝物件動態申請的資源,例如編譯器提供的預設拷貝

6、深拷貝拷貝構造以乙個物件為藍本構造乙個新的物件,新物件創造足夠的空間存放藍本內容然後拷貝藍本內容的過程(拷貝物件指標的同時拷貝物件動態申請的資源)

7、拷貝賦值指兩個物件都有內容,左值清空重新分配右值大小空間並把右值賦值給左值

8、《不可以是乙個成員函式,使用者在用的時候方向會相反,所以最好寫成全域性函式

9、stack,是存在於某個作用域的一塊記憶體空間,例如當你呼叫函式,函式本身即會形成乙個棧用來放置它所接收的引數,以及返回位址。其生命在作用域結束之際結束

10、heap,是指由作業系統提供的一塊全域性記憶體空間,,程式可動態分配從某中獲得若干區塊

11、堆上分配的記憶體都需手動釋放記憶體,否則造成記憶體洩漏

12、如果物件是靜態(static)物件,其生命在作用域結束之後仍然存在,直到整個程式結束。

13、全域性物件,寫在任何作用域之外,其生命在整個程式結束之後才結束,作用域是整個函式。

14、new先分配乙個記憶體空間在呼叫建構函式

15、delete先呼叫析構函式,再釋放記憶體

16、array new 搭配 array delete,否則會記憶體洩漏

17、傳引用只要不是local object就可以

18、static 與物件脫離,不屬於物件,屬於整個類,所有物件可以共享

19、乙個函式處理很多個物件的時候,類成員函式通過this指標找到處理的東西的內容在**

20、什麼時候會使用static資料,固定不變的資料且所以物件共享同一資料時需要加static

21、什麼時候會使用static函式,static沒有this指標,只能處理靜態資料

22、如果是資料是靜態的需要在類外初始化資料,初始化時不需要加static

23、呼叫static函式的方式,通過物件或者通過類名呼叫

24、類模板格式template

25、函式模板格式template

26、namespace,標準庫所有的東西都被包裝在namespacd中

27、用法

(using directive)using namespace std

(using declaration)using std::cout

或者每次使用標準庫封裝內容時加上std::

std::cout.

物件導向高階程式設計

相同class的各物件互為友元 class complex int func const complex param private double re,im string inline string string const char cstr 0 else inline string strin...

C 物件導向高階程式設計 筆記

最近重新複習了一下c 物件導向高階程式設計中知識點,學而時習之,不亦說乎。拷貝建構函式,拷貝的是同型別的物件 賦值建構函式 檢測自我賦值 為什麼?有什麼作用?if this str return this 組合繼承 委託示例 委託 繼承 composite pimpl 編譯防火牆 左邊永遠不用編譯,...

C 物件導向(高階)

1.構造 委託 乙個建構函式可以呼叫另外的建構函式 class aa int i a i,0 a int i,int j 注 避免遞迴呼叫 例 class aa int i a i,0 a int i,int j a 2.不可變物件和類 immutable object and class 不可變物...