IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[C++/CLI] Héritage et méthode Dispose()


Sujet :

C++

  1. #1
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Points : 2 913
    Points
    2 913
    Par défaut [C++/CLI] Héritage et méthode Dispose()
    Bonjour,

    J'ai un petit programme qui observe les modifications d'un ou plusieurs dossier(s). Un dossier correspond à un projet. Il y a un écouteur par projet, et donc par dossier.

    L'écouteur en question est un FileSystemWatcher.

    J'ai créé ma propre classe ProjectFileWatcher qui hérite de FileSystemWatcher, afin d'ajouté une propriété (idProject) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public ref class ProjectFileWatcher : FileSystemWatcher
    {
    	private:
     
    	public:
    		System::String^ idProject;
     
    };
    Tous mes écouteurs (ou ProjectFileWatchers) sont dans une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<ProjectFileWatcher^>^ watchers;
    A un certain moment, j'aimerais supprimer un ce ces écouteurs. L'enlever de la liste ne suffit pas, il faut que j'appelle la méthode Dispose() de FileSystemWatcher.

    Le problème c'est quand je fais : j'ai l'erreur de compilation suivante :
    C2039: 'Dispose' : n'est pas membre de 'ProjectFileWatcher'
    [...]/ProjectFileWatcher.h(5) : voir la déclaration de 'ProjectFileWatcher'
    Vous devez appeler destructeur, '~ProjectFileWatcher' à la place
    Du coup comment dois-je faire pour supprimer cet écouteur?

    Merci!

  2. #2
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Points : 2 913
    Points
    2 913
    Par défaut
    j'ai trouvé quelque chose qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete (System::IDisposable^)(watchers[i]);
    je passe donc ce sujet en résolu, mais si quelqu'un a le temps de m’expliquer pourquoi je ne peux pas appeler la fonction Dispose() de la classe héritée, je suis preneur!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exceptions, héritage et méthodes virtuelles
    Par Nuwanda dans le forum C++
    Réponses: 13
    Dernier message: 23/05/2006, 12h06
  2. [C#] méthode Dispose ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/04/2005, 12h03
  3. [.NET] Pourquoi redéfinir la méthode dispose() d'une forme?
    Par Polyptyx dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 07/09/2004, 12h10
  4. Réponses: 8
    Dernier message: 04/06/2004, 09h13
  5. [Héritage] Redéfinition méthode
    Par petit-ourson dans le forum Langage
    Réponses: 9
    Dernier message: 06/05/2004, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo