我有一個從CMemFile派生的名爲TempMemFile的類。我需要但不能覆蓋TempMemFile中的Growfile方法。無法覆蓋CMemFile :: GrowFile
當我手工在我的派生類(TempMemFile)中編寫GrowFile方法時,它永遠不會被調用,並且在類視圖中單擊我的TempMemFile> Properties> Overrides Growfile時,其他方法不在此處列出。事實上,只有3種方法被列爲可重寫Assert,Dump & Serialize。 MSDN明確指出,此方法可以被覆蓋。我錯過了什麼嗎?
實施/宣言
// TempMemFile.h
class CTempMemFile : public CMemFile
{
public:
CTempMemFile(void);
~CTempMemFile(void);
DWORD Begin(void);
private:
void GrowFile(SIZE_T dwNewLen); // override
};
// TempMemFile.cpp
CTempMemFile::CTempMemFile(void) : CMemFile
{
}
CTempMemFile::~TempMemFile(void)
{
}
void GrowFile(SIZE_T dwNewLen)
{
// This function is never called but CMemFile::Growfile always is verified on the callstack
}
你的聲明和調用是什麼樣的? – 2009-10-24 19:18:11
// TempMemFile.h 類CTempMemFile:公共CMemFile { 公共: CTempMemFile(無效); 〜CTempMemFile(void); DWORD Begin(void); private: void GrowFile(SIZE_T dwNewLen); //覆蓋 }; // TempMemFile.cpp CTempMemFile :: CTempMemFile(無效):CMemFile { } CTempMemFile ::〜TempMemFile(無效) { } 空隙GrowFile(SIZE_T dwNewLen) { //此函數永遠不會被調用,但CMemFile :: Growfile始終在調用堆棧上驗證 } – Canacourse 2009-10-24 20:29:41
我已經更新了原來的Q與您所要求的信息。 – Canacourse 2009-10-24 20:32:18