C 學習記錄 7

2021-09-12 14:51:01 字數 1641 閱讀 6650

回顧:

1 拷貝構造和拷貝賦值

1)淺拷貝和深拷貝

2)拷貝賦值操作符函式

a = b;

2 靜態成員

1)靜態成員變數,全域性區

2)靜態成員函式,沒有this指標

3 單例模式

1)私有建構函式

2)通過靜態成員變數來維護唯一的單例物件

3)通過靜態成員函式獲取單例物件

4)建立方式:餓漢式、懶漢式

4成員指標 //了解

今天二十 操作符過載

1 雙目操作符過載:l#r

1.1 計算類雙目操作符,+ - * …

–>表示的結果是右值,不能對表示式結果再賦值

–>左右運算元既可以是左值,也可以右值

–>兩種實現方式:

1)成員函式形式(左調右參) 左運算元是呼叫物件

形如l#r的表示式可以被編譯器處理成l.operator#®成員函式呼叫形式,該函式的返回結果就是表示式的結果.

2)全域性函式形式

形如l#r的表示式也可以被編譯器處理成operator#(l,r)全域性函式呼叫形式,該函式的返回結果就是表示式的結果

注:使用friend關鍵字將乙個全域性函式宣告為某個類的友元,友元函式可以訪問類中任何成員.

1.2 賦值類雙目操作符,+= -= …

–>表示式結果是左值,就是左運算元自身

–>左運算元一定是左值,右運算元可以是左值也可是右值

–>兩種實現方式

1)成員函式形式

l#r ==> l.operator#®;

2)全域性函式形式

l#r ==> operator#(l,r);

2 單目操作符 #o

2.1 計算類單目操作符:~ -(取負)

–> 表示式結果是右值,不能對表示式結果再賦值

–> 運算元可以是左值也可以是右值

–> 兩種實現方式

1)成員函式形式 #o ==> o.operator#()

2)全域性函式形式 #o ==> operator#(o)

2.2 自增減單目操作符:++ –

1)字首++、–

–》表示式結果是左值,就是運算元自身

–》運算元一定是左值

成員函式形式:#o ==> o.operator#()

全域性函式形式:#o ==> operator#(o)

2)字尾++、–

–》表示式結果式右值,是運算元自增減前的副本

–》運算元一定是左值

成員函式形式:o# ==> o.operator#(int/啞元/)

全域性函式形式:o# ==> operator#(o,int/啞元/)

4輸出和輸入操作符過載

功能:實現自定義型別的物件直接輸出和輸入

注:只能使用全域性函式的形式

friend ostream& operator << (ostream& os, const right& right);

friend istream& operator << (istream& is, right& right);

ostream //標準輸出流類

istream //標準輸入流類

// cout.operator << (a)

cout << a ;

cin >> a ;

linux學習記錄7

linux一切都是檔案。配置服務就是在配置檔案 dev 1 dev 2 dev 3 dev 4 udev服務 規則命名 ide 是老舊的硬碟 mbr 主引導記錄 fhs協議 dev sda 系統第乙個識別到的硬碟 主,擴,1 4 邏輯分割槽5 紅帽5 ext3 紅帽6 ext4 紅帽7 xfs 20...

我的學習記錄7

2017.10.17 李錦浩 第07天 1 今天完成了昨天未完成的程式,並且除錯成功,目前 沒有發現有什麼問題,但對於程式的高效簡潔性來說我覺得我做的還是不夠,還需要繼續努力。2 今天還自學了函式的呼叫和自定義,對於函式中的返回值及函式的部分呼叫機制理解並能夠運用。附 昨天的程式完成版 includ...

藍橋杯學習記錄7

問題描述 輸入兩個整數a和b,輸出這兩個整數的和。a和b都不超過100位。演算法描述 由於a和b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。定義乙個陣列a,a 0 用於儲存a的個位,a 1 用於儲存a的十位,依此類推。同樣可以用乙個陣列b來儲存b。計算c ...