c++
運算子過載
(1)過載運算子的運算順序和優先順序不變,但引數和返回型別是可以重新說明的。
(2)c++
規定,運算子中,引數說明都是內部型別的,不能過載,如:
int* operator+(int, int*);
(3)c++
還規定了「.、::、.*、
->
、?:」這五個運算子不能過載,也不能創造新的運算子,如◎、#
(4)c++
規定:=
、()、
、->
這四種運算子必須為成員形式。
過載增量運算子
1、c++
increase& operator++() //
前增量
increase operator++(int) //
後增量,
int只是為了區別前增量和後增量,沒有任何作用
2、前增量運算子返回引用,後增量運算子返回值。
賦值運算子
1.像拷貝建構函式一樣,
c++也預設提供賦值運算子,同時也存在淺拷貝和深拷貝的問題。什麼時候淺拷貝不合適,就應提供賦值運算子。
2.如果賦值運算子說明為保護或私有的,則可以將賦值操作限定在累得作用域範圍,防止應用程式中使用賦值操作。
i/o流
i/o
標準流類
cincout
cerr
clog 鍵盤
螢幕 螢幕
印表機
檔案流類
檔案輸出類
ofstream
常用的建構函式:
ofstream::ofstream(char* filename, int mode = ios::out, int prot = filebuf::openprot)
mode
是開啟方式,
prot
是檔案保護方式
mode標誌
含義
ios::ate
ios::in
ios::out
---------------
ios::trunk
ios::nocreate
ios::noreplace
----------------
ios::binary
如果檔案存在,輸出內容加在檔案末尾
具有輸入能力(
ifstream
預設)
具有輸出能力(
ofstream
預設)
-------------------------------------------
如檔案存在,清除檔案內容(預設)
如檔案不存在,返回錯誤
如檔案存在,返回錯誤
----------------------------------------------
以二進位制開啟檔案
prot標誌
含義
filebuf::openprot
filebuf::sh_none
filebuf::sh_read
filebuf::sh_write
相容共享方式
獨佔,不共享
允許讀共享
允許寫共享
1、引數filename
的檔名要說明其路徑,其中斜槓要雙寫,因為編譯器理解下的斜槓是字元轉換符。
2、要檢查檔案是否開啟,則判斷
fail()
成員函式:
ofstream myf(「myname」);
if (myf.fail())
串流類
1.串流類不是標準裝置,所以沒有
cout
那樣預先定義的全域性物件。
2.要定義乙個串流類物件,須提供字元陣列和陣列大小。
3.類istrstream
用於執行串流輸入,最有用的建構函式為:
istrstream::istrstream(const char* str)
istrstream::istrstream(const char* str, int size) 4.
類ostrstream
用於執行串流輸入,最有用的建構函式為:
ostrstream::ostrstream(char* str, int size, int prot = ios::out)
i/o成員函式
getline(char* line, int size, char = 『/n』)
get()
get(char*, int , char delim = 『/n』)
put()
過載插入運算子
ostream&
operator<<(
ostream& oo
, rmb& d)
過載模板函式
如果函式的名字與函式模板相同,但操作不同,就有必要用過載的方法將它們分開。編譯程式在處理這種情況時,首先匹配過載模板,然後再尋求模板的匹配。
異常處理:1、
try程式塊之後可以出現任意數量的
catch
程式塊,但是
try程式塊之前不許出現
catch
程式塊。
2、catch
程式塊資料型別之後的引數名是可選的:
catch(double)
3、如果乙個函式拋擲了乙個異常,但是在異常處理函式的呼叫鏈中找不到與之匹配的
catch
塊,則改程式通常以
abort()
函式呼叫終止。
4、拋擲異常與異常處理程式之間,是按資料型別的嚴格匹配來捕獲的,不允許型別轉換。預設異常處理型別為
」…」。
5、對於類的派生關係,按照下列規則捕獲異常:
a)異常處理的資料型別是公有基類,拋擲異常的資料型別是派生類
b)異常處理的資料型別是指向公有基類的指標,拋擲異常的資料型別是指向派生類的指標
C 學習筆記(三)
chapter 3 函式和類的自頂向下設計 1 乙個程式的開發過程 1.問題規範 2.分析 資料需求 3.設計 初始演算法 演算法精化 4.實現 5.測試 2 重要工具 結構圖 3 分析,設計程式時,甚至對任何問題來說,我們都要由大到小,層層分解,由乙個大問題分割成多個相關 的小問題,一口乙個蛋糕是...
C 學習筆記(三)
attributes field modifiers type variable declarators 域的修飾符field modifiers可以是 靜態域和非靜態域 下面的例子清晰的反映了二者之間的區別 域的初始化 如果在類中,沒有顯式的對域進行初始化,系統將賦予其乙個預設值。域的預設初始化分...
C 學習筆記 三
c 學習筆記 三 by heiyeluren 學習 visual c 入門經典 學習筆記 1.類的定義和繼承 定義乙個類使用class關鍵字 class class1 預設定義的類是只能本工程中的其他類和函式才能訪問的,我們也可以使用顯式的方式定義我們的類是私有的 internal class cl...