- 對于
Point *ptr=new Point[2]
,當要釋放 ptr 指向的動態(tài)數(shù)組對象時晕讲,所使用的語句是delete [] ptr
- 類的多態(tài)性
不同的對象单起,調(diào)用相同名字的函數(shù),可導(dǎo)致完全不同的行為的現(xiàn)象稱為 多態(tài)性 - ostream 類的直接基類是 ios 類
- << 流插入運算符比默,>> 流提取運算符
- 運算符重載的本質(zhì) (函數(shù)的重載)
- 運算符重載的一種形式
Complex opeator + (Complex &c1,Complex &c2);
其中拳恋,operator + 是函數(shù)的名字榜旦。
無名對象
Complex 是一個類,可以通過
Complex(real+c2.real,img+c2.img)
看成是一個臨時對象竟闪,沒有對象名离福,是一個無名對象。重載的規(guī)則
不能改變運算符操作數(shù)的個數(shù)炼蛤。
不能改變運算符的優(yōu)先級別妖爷。
不能改變結(jié)合性。
不能有默認的參數(shù)
- 重載的對象必須和用戶定義的自定義類型的對象一起使用理朋,其參數(shù)至少應(yīng)有一個是類對象(或者類對象的引用)
- 重載有兩種方式
- 把運算符重載的函數(shù)作為類的成員函數(shù)
- 作為類的友元函數(shù)
10絮识、 成員函數(shù)還是友元函數(shù)?
一般 <<嗽上、>>笋除、和雙目運算符 友元函數(shù)
復(fù)合、單目運算符 成員函數(shù)
[] 只能用成員函數(shù) 來重載炸裆,不能用友元函數(shù)來重載
cout 不是C++ 預(yù)定義的關(guān)鍵字垃它,它是 ostream 流派生類的對象,在 iostream 頭文件中定義烹看。
cout console output
cerr console error
clog console logC++的IO系統(tǒng)通過 流 的機制實現(xiàn)文件和控制臺的輸入輸出操作国拇。
函數(shù)模板既可以與函數(shù)模板重載,也可以與普通函數(shù)重載惯殊。
在class/typename 后面的是類型參數(shù)
在類外定義成員函數(shù)酱吝,則類內(nèi)的聲明需是 public
純虛函數(shù)
virtual float area() const=0
抽象類,凡是包含純虛函數(shù)的類都是抽象類
純虛函數(shù)是不能被調(diào)用的土思,包含純虛函數(shù)的類是無法建立對象的务热。
具體類
用虛函數(shù)實現(xiàn)多態(tài)性忆嗜。
- 靜態(tài)關(guān)聯(lián)和動態(tài)關(guān)聯(lián)
- 一個抽象類的派生類可以實例化的必要條件是 實現(xiàn)了所有的純虛函數(shù)
- 一個C++ 源程序按結(jié)構(gòu)可以分成三個文件
類說明文件
類實現(xiàn)文件
類使用文件 - 對象由一組數(shù)據(jù)和一組操作構(gòu)成。