c++的重要性質(zhì):
OOP object oriented programming
property method
member variable,member function
encapsulation
enheritance
polymorphism
overloading
ellipse circle triangle rectangle square
virtual作用?
如果沒有virtual,那么就繼承了基類指針的性質(zhì),如果有virtual,那么就指向?qū)?/p>
象的類型。虛函數(shù)正式為了對“如果以一個基類的指針指向一個派生類的對象,那么
通過該指針只能夠調(diào)用基類所定義的成員函數(shù)”這條規(guī)則反其道而行的設(shè)計。
純虛函數(shù)作用?
就是在基類中并不實現(xiàn),但是為了在派生類中使用,就需要分配一個并不執(zhí)行,但
是還需要繼承的函數(shù)。就是純虛函數(shù) virtual function()=0;純虛函數(shù)不需要
定義,在派生類中被重新定義。
什么是抽象類?
擁有虛函數(shù)的類。抽象類不能產(chǎn)生出對象實體,但是可以擁有指向抽象類的指針,
便于操作抽象類的各個派生類。
虛函數(shù)派生下去仍是虛函數(shù),而且可以省略virtual。
虛函數(shù)到底有什么作用?
1如果你估計派生類會重新定義一個成員函數(shù),那么你就把基類中的這個函數(shù)寫成
virtual
2通過單一指令調(diào)用不同函數(shù),就是多態(tài)Polymorphism,"ability to asume many
forms"
3虛函數(shù)是c++語言polymorphism性質(zhì)以及動態(tài)聯(lián)編的關(guān)鍵
4既然抽象類中的虛函數(shù)不打算被調(diào)用,那么就把它設(shè)置成純虛函數(shù)。
5擁有純虛函數(shù)者為抽象類。
6抽象類不能產(chǎn)生出對象實體,但是我們可以擁有指向抽象類的指針,以便于操作抽
象類的各個派生類。
7虛函數(shù)派生下去仍是虛函數(shù),可以不寫virtual。
虛函數(shù)怎樣工作?
在含有虛函數(shù)的類中,編譯器會為它做出一個虛函數(shù)表,表中的每一個元素都指向
一個虛函數(shù)的地址。
什么是upcasting?
它是向上強制性類型轉(zhuǎn)換。
class CMyDoc:public CDocument;
CMyDoc mydoc;
(CDocument)mydodc.func();(upcasting)
注意一般不用upcasting。
靜態(tài)變量到底是什么?
static double m_rate;
static成員變量不屬于對象的一部分,而是類的一部分,程序可以在沒有誕生任何
對象的時候就處理此種成員變量,但首相你必須初始化它。
static成員變量的初始化不要安排到構(gòu)造函數(shù)中,因為構(gòu)造函數(shù)可以一再被調(diào)用;
也不要把初始化安排在頭文件中,因為可能會被嵌入到許多地方。應(yīng)該在類以外的
任何位置設(shè)定其初值。
static變量可以想象成一個全程變量。
static成員函數(shù)不需要借助任何對象,可以被調(diào)用執(zhí)行,所以編譯器不會為它暗加
一個this指針。因此static成員函數(shù)無法處理類中的non-static成員變量。
static的構(gòu)造很析夠就相當(dāng)于全局變量,只是它會在全局函數(shù)之前析夠。構(gòu)造函數(shù)
和析夠函數(shù)都是以函數(shù)為標(biāo)志的。
error LINK2001:unresolved external symbol""();一般是因為沒有初始化static
的值。
new的好處?
分配對象所需內(nèi)存空間,并且引發(fā)構(gòu)造函數(shù)的執(zhí)行。
什么是RTTI?
RTTI Runtime Type Information 動態(tài)類型識別
就是知道程序執(zhí)行過程中某個對象是屬于那個類的。
什么是動態(tài)生成(Dynamic Creation)?
什么是異樣處理(Exception Handling)?
使用三個expection保留字:
try:其后跟隨一段以{}圈出的程序代碼,exception將在那里被處理。(就是將要處
理的代碼)
catch:其后{},里邊是處理程序。(就是怎樣處理了)
throw:用來產(chǎn)生一個exception。
什么是模板?
template,就是可以重復(fù)利用的架構(gòu)。
template <class T>
T power(T base,int exponent);
這里的T就是可以隨時改變的量。當(dāng)然這里的T是類的意思,可以是系統(tǒng)定義的類,
也可以是自己定義的類。
這里注意對于,模板,兩個對象如果都使用了同一個模板,在編譯的時候是不知道
的,但是鏈接的時候,連接器就會將他們重復(fù)的部分去掉。標(biāo)準(zhǔn)的說就是 鏈接器會
把所有冗余的template碼剔除。在Borland鏈接器里頭稱為smart技術(shù)。
posted on 2009-07-18 19:25
Bluesea 閱讀(420)
評論(0) 編輯 收藏 引用 所屬分類:
C/C++