2010-09-24 13 views
6

J'ai une classe de référence C++ .NET_4 gérée que je dérive d'une classe de base .NET_4 écrite en C#."Fonction virtuelle de classe de base C#" - "override dans la classe de référence C++ managée"

C# classe de base:

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

Managed C++ Classe:

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

Voici l'erreur que je reçois:

« entrée :: DI :: Souris: : Delete ': correspond à la méthode de classe ref de base' Core :: ResourceManager :: _ Resource :: Delete ', mais n'est pas marqué' new 'ou' override '; « Nouveau » (et « virtuel ») est supposé

Quelle est la syntaxe géré C++ correcte pour remplacer une fonction virtual d'une classe C#?

Répondre

6

Vous mettez overrideafter the function signature.

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

Notez que vous avez une faute de frappe (certes copiée de OP) avec _namspace_. Cela devrait lire 'namespace'. Je ne souhaite pas proposer d'édition (je suis en dessous de 2k) car il n'y a rien de plus que je pourrais améliorer avec votre réponse – Tas