??? 記得在剛開始學習C++的時候,有一條規定,就是在基類中聲明的虛函數,在子類中重載時不要改變這個函數的作用域。例如在基類public中聲明的虛函數,在其子類中重載時還應該時public的。
??? 但我在看DirectShow的代碼中發現有的子類改變了父類的虛函數的作用域。先開始想,那幫人怎么會犯這么低級的錯誤,后來一想應該有其原因。在思考后,覺得改變了父類虛函數的作用域是一件很有趣的事情。如果子類的實例被轉換成父類,這個函數是可以調用的,而當他是子類時是不行的。
??? 突然我發現,這樣就要了一個層次的關系,在父類一層,何子類一層。當一個用戶在不同的層次時,操作的權利是不同的。它起到了某種限制。
呵呵,好精致的玩意。
posted on 2006-09-15 22:13
walkspeed 閱讀(639)
評論(2) 編輯 收藏 引用