2012-04-13 4 views
1

Ich arbeite an einem SDI-Projekt, wo das View CFormView erbt. Ich versuche CView::OnUpdate außer Kraft zu setzen, aber der Compiler beschwert sich etwa so:Versuchen, CView :: OnUpdate in CFormView zu überschreiben

'CMyFormView::OnUpdate' : 'virtual' storage-class specifier illegal on function  

Definition

Hier ist meine Klassendefinition:

class CMyFormView : public CFormView 
{ 
… 
// Overrides 
public: 
    virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 
protected: 
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 
    virtual void OnInitialUpdate(); // called first time after construct 
    virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint); 
}; 

Die Funktion Ich versuche, sieht wie folgt außer Kraft zu setzen:

virtual void CMyFormView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{ 
    CFormView::OnUpdate(pSender, lHint, pHint); 

    //Get the current data from our document 
    CMyAppDoc* pDoc = GetDocument(); 
} 

Könnte mir bitte jemand sagen, wie ich das beheben kann?

Antwort

3

Fügen Sie "virtual" nicht in die Funktionsdefinition (die .cpp-Datei) ein. Sie können es nur in die Deklaration (.h-Datei) einfügen. Wenn es bereits in der Basisklassenhierarchie (CView?) Als virtuell deklariert ist, brauchen Sie das Schlüsselwort "virtual" überhaupt nicht, da es automatisch virtuell ist, wenn Sie die gleiche Funktionsdeklaration haben.

+0

Ich beantwortete meine eigene Frage direkt, als ich sah, dass Sie eine Antwort geschrieben haben. Vielen Dank. – rstackhouse

Verwandte Themen