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

MFC Discussion :

[MFC] Héritage mutiple, erreur de compilation C2385


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut [MFC] Héritage mutiple, erreur de compilation C2385
    Salut !

    Le sujet du message est assez clair, voici maintenant l'explication de mon problème ...

    J'ai une application de type boîte de dialogue, tout ce qu'il y a de plus simple. J'aimerais que ma classe de dialogue hérite des propriétés de la classe CSocket ... mais la compilation ne passe pas.

    Le message d'erreur indique précisément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    \TestServerDlg.cpp(25) : error C2385: 'CTestServerDlg::delete' is ambiguous
     
    \TestServerDlg.cpp(25) : warning C4385: could be the 'delete' in base 'CObject' of base 'CCmdTarget' of base 'CWnd' of base 'CDialog' of class 'CTestServerDlg'
     
    \TestServerDlg.cpp(25) : warning C4385: or the 'delete' in base 'CObject' of base 'CAsyncSocket' of base 'CSocket' of class 'CTestServerDlg'
    Comment lever l'ambiguité ?

    D'avance merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    il faut le savoir les MFC n'utilise pas l'heritage multiple ,et l'heritage multiple entre 2 classes MFC cause des problemes ..
    pour ton probleme (sans garantie):
    surchage l'operateur delete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void CTestServerDlg::operator delete(void* p)
    {
         CDialog:delete();
    }
    a bidouiller et verifier qu'il y a pas de leaks memoire

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Et bien ... je suis assez surpris qu'il ne soit pas aisément possible d'utiliser l'héritage multiple ... ça doit être assez gênant, quoi qu'avec Java ce n'est pas du tout possible mais il y la possibilité d'utiliser les Interfaces.

    Je ne me risquerais pas à demander pourquoi l'héritage multiple n'est pas possible (quoi que j'aimerais tout de même bien en connaitre les raisons).

    Tant pis je vais essayer de trouver autre chose dans ce cas.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Parce que bon nombre de classe partage les mêmes parents et ont presque toutes comme parent CObject.
    dans ton cas juste CObject ,essaye ça peut fonctionner ...

    heritage multiple entre classe MFC non recommandé apres tu fais ce que tu veux.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Je vais suivre ton conseil et ne pas utiliser l'héritage multiple. Merci pour les infos.

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

Discussions similaires

  1. [MFC]erreur de compilation avec codejock
    Par k_boy dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 29/06/2007, 12h14
  2. [VC++6>MFC] messagebox erreur apres compilation
    Par philo71 dans le forum MFC
    Réponses: 2
    Dernier message: 03/08/2006, 15h58
  3. Réponses: 2
    Dernier message: 05/05/2006, 10h17
  4. [MFC] erreur de compilation
    Par moulefrite dans le forum MFC
    Réponses: 3
    Dernier message: 03/05/2006, 15h26
  5. Réponses: 1
    Dernier message: 13/07/2005, 15h51

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