我有一個函數(實際上來自ATL,它是ATL::CSoapMSXMLInetClient::SendRequest(LPCTSTR)
),其行爲應該是略微被修改。也就是說,我只需要在函數的中間添加一個函數調用。如何修改沒有模板方法的函數行爲?
考慮到這不是模板方法,改變其行爲的最佳實踐是什麼?我是否需要重新編寫整個功能?
在此先感謝。
編輯:從類ATL::CSoapMSXMLInetClient
和複製粘貼功能全碼推導在子類函數定義稍作修改不起作用,因爲大部分ATL::CSoapMSXMLInetClient::SendRequest
使用的成員是「私人」和訪問他們的子類是編譯時錯誤。
而不是最佳實踐,我正在尋找一種方法來實現它,如果有的話。 :(
爲什麼不使用模板方法?在正確的地方撥打受保護的虛擬方法。在基類中實現受保護的方法作爲空方法,然後在子類中重寫。 – gregg 2011-06-16 14:35:45
我不能改變基類,因爲它是ATL類 – 2011-06-16 14:37:52