C 基礎知識點(二)

2021-09-13 12:21:06 字數 2211 閱讀 5886

類的作用或概念:用來描述一組具有相似屬性的東西的物件的一種資料結構。類中有資料成員的宣告和定義,有成員函式的實現**。

物件就是類的例項化。計算機要想使用類,只能進行例項話。

stl是標準庫模板,由容器演算法迭代器組成。

stl優點:

1.可以很方便的對一堆資料庫進行排序(呼叫sort());

2.stl是跨平台的,在linux下也能使用。

3.除錯程式時更加安全和方便。

容器是一種資料型別,用來儲存資料。

stl有七種主要容器:

vector list deque map multimap set muitiset

變數的宣告是告訴編譯器我有某個型別的變數,但不會為其分配記憶體,但是定義會分配記憶體。

這三個命令一般是為了避免標頭檔案被重複引用。

#ifndef ch_h //意思是如果沒有引用ch.h

#define ch_h //引用ch.h

#endif //否則不需要引用

1.引用必須被初始化,指標不必。

2.引用初始化後不可被改變,指標可以改變所指的物件。

3.不存在指向空值的引用,但是存在指向空值的指標。

類成員的訪問控制方式

public:類本身、派生類和其他類均可訪問

protected:類本身和派生類均可訪問,其他類不能訪問;

private:類本身可訪問,其他類和派生類不可訪問。

記憶體洩露是指程式中動態分配了記憶體,但是在程式結束時沒有釋放這部分記憶體,從而造成那一部分記憶體不可用的情況。

有一些記憶體洩露的檢測工具,比如 bounds checker。

靜態記憶體洩漏通過工具或者仔細檢查**找到洩漏點。

動態記憶體洩漏很難查詢,一般通過在**中加斷電跟蹤和run-time記憶體檢測工具來查詢。

記憶體洩漏的檢測可以分為以下幾個步驟:

1.看**new之後是否delete,就是申請看靜態記憶體用完是否釋放。看析構函式是否真的執行,如果沒有真的執行,就需要動態釋放物件。

2.讓程式長時間執行,看任務管理器對應程式記憶體是不是一直向上增加。

3.使用常用記憶體洩漏檢測工具來檢測記憶體洩漏點。

1.標頭檔案用於儲存程式的宣告。

2.通過標頭檔案可以呼叫函式庫。因為有些代拿不能向使用者公布,只要想使用者提供標頭檔案和二進位制的庫即可,使用者只需要按照標頭檔案中的介面宣告來呼叫庫功能,編譯器會從庫中提取相應的**。

3.如果某個介面被實現或被使用時,其方式與標頭檔案中的宣告不一致時,編譯器就會指出錯誤,這一簡單的規則能大大減輕程式設計師除錯、改錯的負擔。

函式模板的例項化是由編譯程式在處理函式時自動完成的,而類模板的例項化必須由程式設計師在程式中顯示的指定。

函式模板是模板的一種,可以生成各種型別。

//函式例項:

template

type min(type a,tyoe b)

~test()

析構函式的特點:

1.函式名稱固定:~類名()

2.沒有返回型別,沒有引數。

3.不可以過載,一般由系統自動的呼叫。

優點: 繼承可以方便的改變父類的實現,可以實現多型,子類可以繼承父類的方法和屬性。

缺點:破壞封裝,子類和父類可能存在耦合。子類不能改變父類的介面。

析構函式的呼叫次序是:先派生類的析構後基類的析構,也就是說在呼叫基類的析構函式時,派生類的資訊已經全部銷毀了。

定義乙個物件時先呼叫基類的建構函式、然後呼叫派生類建構函式。

野指標指向乙個已經刪除的物件或無意義位址的指標。與空指標不同,野指標無法通過簡單的判斷是否為null避免,而只能通過養成良好的程式設計習慣來盡力避免。

造成的主要原因是:指標變數沒有被初始化,或者指標p被free或者delete之後,沒有置為null。

1.sizeof是運算子,計算資料所佔的記憶體空間;strlen()是乙個函式,計算字元陣列的字元數。

2.sizeof可以用作型別引數;strlen只能用作char*做引數,必須是以』\0』結束。

3.陣列做sizeof』的引數不退化,傳遞給strlen就退化為指標。

4.sizeof操作符的結果型別是size_t,它在標頭檔案中typedef為unsigend int型別。該型別保證能容納實現建立的最大物件的位元組大小。

常量指標:是乙個指向常量的指標,可以防止對指標操作而修改該常量。

指標常量:是乙個常量,且是乙個指標。指標常量不能修改指標所指向的位址,一旦初始化,位址就固定了,不能對它進行移動操作。但是指標常量的內容可以改變。

C 基礎知識點梳理二

上次我們講的是一些c 前面的基礎知識,一些比較重要的索引委託事件介面泛型將會接下來慢慢講解,這也是乙個自我複習的過程,嗯對,就是這樣的。先來 深入理解類,掌握一些類的使用方法和特性。靜態字段 被類的所有例項共享,所有例項都訪問記憶體的同一位置,直接使用點運算子就可以訪問公共類的例項成員哦,d.mem...

C 基礎知識點

1.單行注釋 多用於給變數注釋 2.多行注釋 多用於大段文字注釋 3.文件注釋 多用於給類和方法注釋 只能以字母 或者 符號開頭。開頭暫時不要用,它們有自己特殊的意義 後面可以跟任意的字母數字下劃線 命名法 1 camelclass駝峰命名法 變數名首單詞的首字母小寫,其餘的每個單詞的首字母大寫eg...

C 基礎知識點

主要包含c 常用語句 語言特徵 物件導向程式設計基礎 集合和索引。c 常用語句 物件導向程式設計基礎 高階程式設計 多重介面實現,c 不允許多重類繼承,但c 允許多重介面實現,定義時基類必須在介面之前,如 public class mobile phone,iusb,ibluetooth publi...