知識點整理

2021-09-24 16:37:58 字數 2880 閱讀 3717

一·標準庫容器和演算法

1.順序容器(與前面類似

2.關聯容器

map和multimap

元素包含key(鍵)和值(value)兩部分

按照鍵對元素排序

map不允許重複元素出現,但multimap可以

set和multliset

是包含已排序物件的關聯容器

只是單純的鍵的集合

set不允許重複鍵出現

3.常用操作

make_pair(v1,v2)返回用v1v2初始化的元素

快速查詢 c.find(k)返回乙個迭代器,指向第乙個鍵值為k的元素,若找不到,則返回c.end()

c.lower_bound(k),返回乙個迭代器,指向第乙個鍵不小於k的元素

c.upper_bound(k),返回乙個迭代器,指向第乙個大於k的元素

c.equal_range(k),返回乙個迭代器pair,表示鍵等於k的元素的範圍

二·物件的初始化與銷毀

1.預設初始化

如果定義物件時沒有指定儲值,物件被預設初始化,呼叫預設建構函式,乙個類裡至少要有兩個,建構函式,乙個預設的

2.直接初始化

初始值在圓括號中看情況呼叫

3.拷貝初始化

用等號右邊的物件建立乙個新物件賦值給左邊

4.列表初始化

用花括號裡的初始值構造乙個物件,也可以是乙個列表

5.預設建構函式

可以不提供試餐就能呼叫的建構函式,類裡一定要有

6.隱式型別轉換建構函式

建構函式會引起資料型別向類型別的自動轉換,如果不需要這種轉換可在前面加乙個explicit

7.析構函式

~類名一般隱式呼叫除非要幹什麼事

assert(condition)判斷是否銷毀

8.拷貝控制成員

用已知物件初始化新物件

逐項賦值,這種行為被稱為淺複製

當類中包含指標或引用成員時,淺複製行為並不適用

深複製,先建立資源,後賦值,改掉了預設的,引用原來物件的值

一般形式是x(x&)或者說是x(const x&)

三·運算子過載

定義過載運算子和定義普通函式類似

函式名由關鍵字operator 和其後要定義的運算子組成

返回型別:運算結果的型別

參數列:提供參與運算的運算元

引數個數取決於運算子的運算元個數和運算子函式是成員函式還是非成員函式

函式體:進行運算,返回運算結果,即表示式的值

一元運算子函式不需要提供引數

二元運算子提供乙個引數作為右運算元

通常宣告為類的友元,以便訪問私有資料成員

不能過載 && || , &

設計類時,只有操作是類需要的,且在邏輯上與運算子相關,才適合定義成過載的運算子

賦值(=)、下標()、函式呼叫(())和成員函式訪問箭頭(->)運算子必須是成員函式

ex:x的成員運算子函式operator+()類外定義

x x::operator+(const x& right)

x的非成員運算子函式operator+()

x operator+(const x& left, const x& right)

輸入輸出運算子的過載

「>>」和「<<」可以用於內建型別資料的i/o流輸入和輸出,如果希望使用者自定義型別以這種方式輸入和輸出,就需要過載「>>」和「<<」

istream& operator>>(istream&, type&);

ostream& operator<<(ostream&, const type&);

只能在類外定義,友元

四·繼承

繼承:在已有類的基礎上建立新類的過程

乙個 b 類繼承a類,或稱從類 a 派生類b

被繼承的已有類稱為基類;

繼承得到的新類稱為派生類;

派生類可以再被繼承,這樣構成的層次結構稱為繼承層次

類繼承關係的語法形式

class

派生類名 : 基類名錶

;
基類名錶 構成

訪問控制 基類名1, 訪問控制 基類名2 ,… , 訪問控制 基類名n

public 公有繼承

private 私有繼承

protected 保護繼承

派生類定義了與基類同名的成員,在派生類中訪問同名成員時遮蔽了基類的同名成員

在派生類中使用基類的同名成員,顯式地使用類名限定符:

類名 :: 成員

在建立派生類物件時用指定引數呼叫基類的建構函式來初始化派生類繼承基類的資料

派生類建構函式宣告為

派生類建構函式 ( 變元表 ) : 基類 ( 變元表 ) , 物件成員1( 變元表 )

… 物件成員n ( 變元表 ) ;

建構函式執行順序:基類  物件成員 派生類

基類的建構函式和析構函式不能被繼承

五·虛函式與多型性

1.多型性是指乙個名字,多種語義;或介面相同,多種實現。

過載函式是多型性的一種簡單形式。

2.虛函式允許函式呼叫與函式體的聯絡在執行時才進行,稱為動態聯編。

帶virtual 的成員函式稱為虛函式

乙個虛函式,在派生類層介面相同的過載函式都保持虛特性

虛函式必須是類的成員函式

虛函式可以是另乙個類的友元

3.析構函式可以是虛函式,但建構函式不能是虛函式

在派生類中過載基類的虛函式要求函式名、返回型別、引數個數、引數型別和順序完全相同

析構函式可以是虛的。虛析構函式用於指引 delete 運算子正確析構動態物件

4.純虛函式是乙個在基類中說明的虛函式,在基類中沒有定義, 要求任何派生類都定義自己的版本

說明形式: virtual 型別 函式名(參數列)= 0

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 狀態控制碼 code,control flag 標誌位欄位 u a p r s f 佔6位元。各 位元的含義如下 ack 確認位元 acknowledge 只有當ack 1時確認號字段才有效,代表這個封包為確認封包。當ack 0時,確認號無效。psh push function 若為1時,代表要...

知識點整理

馮諾依曼結構中計算機硬體系統由運算器,控制器,儲存器,輸入裝置,輸出裝置五部分構成,cpu包含運算器和控制器 html文件不需要專門的網頁製作工具進行編寫,使用微軟自帶的記事本或寫字板都可以進行編寫 文件標題顯示在標籤欄裡,html具有平台無關性 所以把html文件從windows系統複製到unix...