更一般的,c++支持函數(shù)重載(funtion overloding)的機(jī)制。c++允許兩個(gè)或者兩個(gè)以上的函數(shù)具有相同的命名字。限制條件是參數(shù)的不同,可以是參數(shù)的類(lèi)型或者數(shù)目的不同。根據(jù)不同的參數(shù)表。編譯器就可以區(qū)分開(kāi)調(diào)用哪個(gè)函數(shù)。
重載函數(shù)和非重載函數(shù)在運(yùn)行時(shí)刻的行為是一樣的。只是重載函數(shù)在運(yùn)行的時(shí)候,會(huì)花費(fèi)時(shí)間來(lái)決定到底用哪個(gè)函數(shù)。如果c++不支持函數(shù)重載的話(huà)。那么我們就必須為每個(gè)函數(shù)設(shè)置不相同的名字。
如果在類(lèi)的體外進(jìn)行成員函數(shù)的定義的時(shí)候,就必須指出這個(gè)成員函數(shù)屬于哪個(gè)類(lèi)。這個(gè)可以通過(guò)類(lèi)的域操作符(calss scope operator)來(lái)實(shí)現(xiàn)。
例如:Inarry::
":"冒號(hào)操作符被稱(chēng)為域操作符。
當(dāng)與一個(gè)類(lèi)相連接的時(shí)候。它就成為一個(gè)域操作符了。
我們可以非正式的把與看作是一個(gè)可視的窗口。非全局域的文件在它的這個(gè)文件中都是可見(jiàn)的,在一個(gè)函數(shù)體內(nèi)定義的對(duì)象是局域的,它只在這個(gè)函數(shù)體內(nèi)可見(jiàn)。每個(gè)類(lèi)維持一個(gè)域。在這個(gè)域之外,它的成員是不可見(jiàn)的。類(lèi)域操作符告訴編譯器。域操作符后面的內(nèi)容是可以在這個(gè)域中找到的。
引用:引用是一種沒(méi)有指針語(yǔ)法的指針。與指針一樣,引用提供對(duì)對(duì)象的間接訪(fǎng)問(wèn)。
類(lèi)機(jī)制還支持特殊析構(gòu)成員函數(shù)(destructor member funtion )每一個(gè)類(lèi)對(duì)象在最后一次被使用之后,析構(gòu)函數(shù)就會(huì)被自動(dòng)調(diào)用。
我們?cè)谖鰳?gòu)函數(shù)前面加上~線(xiàn)來(lái)標(biāo)識(shí)。一般來(lái)說(shuō),析構(gòu)函數(shù)釋放類(lèi)對(duì)象和在構(gòu)造函數(shù)中所獲得的資源。