2010-09-24 19 views
6

Ich habe eine .NET_4 Managed C++ ref-Klasse, die ich von einer Basisklasse .NET_4 in C# abgeleitet bin."C# Basisklasse virtuelle Funktion" - "überschreiben in verwalteten C++ ref-Klasse"

C# Basisklasse:

namespace Core 
{ 
    public class ResourceManager 
    { 
    public class _Resource 
    { 
     public virtual void Delete() {} 
    } 
    } 
} 

Managed C++ Klasse:

namespace Input.DI 
{ 
    public ref class Mouse : ResourceManager::_Resource 
    { 
    public: 
    virtual void Delete() {} 
    }; 
} 

Hier ist der Fehler Ich erhalte:

‚Input :: DI :: Mouse: : Delete ': entspricht der Base Ref-Klassenmethode' Core :: ResourceManager :: _ Resource :: Delete ', ist jedoch nicht als' new 'oder' override 'gekennzeichnet; ‚Neue‘ (und ‚virtuelle‘) wird

angenommen

Was die richtige verwaltete C++ Syntax ist eine virtual Funktion aus einer C# Klasse außer Kraft zu setzen?

Antwort

6

Sie setzen overrideafter the function signature.

//MANAGED C++ CLASS 
namspace Input.DI 
{ 
    public ref class Mouse : ResourceManager::_Resource 
    { 
    public: 
    virtual void Delete() override {} 
    }; 
} 
+0

Beachten Sie, dass Sie einen Tippfehler (freilich kopiert von OP) mit _namspace_ haben. Das sollte 'namespace' lesen. Ich möchte keinen Schnitt vorschlagen (ich bin unter 2k), da es nichts mehr gibt, was ich mit deiner Antwort verbessern könnte – Tas

Verwandte Themen