歡迎大家跟我交流
gTalk: 2005119@gmail.com
我的統(tǒng)計(jì)
您是第 位訪客
父類的友元不會(huì)自動(dòng)成為子類的友元;而且友元會(huì)破壞封裝;C++的語(yǔ)方不允許(非成員)友元函數(shù)為虛函數(shù)。但是,某些時(shí)候,必須通過(guò)友元才能實(shí)現(xiàn)一些操作符重載,如operator<<();如果為每個(gè)子類都實(shí)現(xiàn)operator<<()倒是一個(gè)可行的方法,但是顯得很啰嗦。如果能把友元定義為虛函數(shù),則子類可以繼承該友元的接口而無(wú)需重復(fù)聲明友好那該多好啊?本文則通過(guò)一種變通的方法巧妙達(dá)到虛函數(shù)的效果。//基類 Base.
結(jié)果:任何從Base派生類的,都可以利用cout<<obj的機(jī)制通過(guò)流進(jìn)行輸出。同樣道理,也可以利用此方法實(shí)現(xiàn)ACE_InputCDR??/ ACE_OutputCDR對(duì)網(wǎng)絡(luò)操作序列化操作。(本文也是回答某網(wǎng)友關(guān)于派生類不能重載的問(wèn)題的回復(fù))
Powered by: C++博客 Copyright © Stone Jiang