回顧:
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 ...