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

VC++ .NET Discussion :

Fonction virtuelle Visual Studio Express 2005


Sujet :

VC++ .NET

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par d�faut Fonction virtuelle Visual Studio Express 2005
    bonjour,
    j ai un probleme lors de l edition des liens et je ne comprend pas d ou cela vient. J ai consulte les FAQ la MADN et pas grand chose sur le sujet, voici mon pseudo code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public ref class Arrow()
    {
    public: 
       Point^ start;
       Point^ end;
     
       Arrow(){...}
     
       Arrow(Point^ s,Point^ e){...}
     
       virtual void display(7 arguments)
    }
     
    public ref class ArrowLeft:public Arrow
    {
    public: 
     
       Color^ c;
       Pen^ p;
     
       ArrowLeft(Point^ s,Point^ e):Arrow(s,e){...}
     
       void display(7 arguments)
    }
    Si je compile ca comme ca, j ai des erreurs, il faut rajouter virtual avant Arrow:isplay et override ou new apres, pourquoi ?

    Tres bien, alors je rajoute virtual/override ou simplement new et ai une erreur lors de l edition des liens de type:

    error LNK2020: jeton non resolu Arrow::display
    fatal error LNK1120: 1 externe non resolu

    Qu est ce que je dois faire ? J ai essayer plein de combinaison differente mais sans succes

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Le C++/CLI, comme le C#, oblige � sp�cifier qu'une fonction est une red�finition d'une fonction virtuelle de la classe m�re. Cela facilite la lecture.

    Pour ton erreur "non-r�solu", est-ce qu'au moins tu as une d�finition pour ta fonction display ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par d�faut
    Non je n ai pas de definition pour la fonction virtuelle,seulement les arguments, mais pour l autre classe oui j ai une definition, j ai omis de le preciser...

    ArrowLeft::display(7 argument)
    {
    ...
    }

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    les mots cl�s virtual et overide sont indispensables
    http://dotnet.developpez.com/faq/cpp...rface#override

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par d�faut
    J ai trouv�, j avai deja essay� virtual et override. Il fallait seulement ecrire

    virtual void display(7 arguments)
    {
    }

    au lieu de

    virtual void display(7 arguments);

    Quel compilateur capricieux !

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    La premi�re est une d�finition, l'autre une d�claration.
    Si tu voulais une fonction virtuelle sans corps, il fallait en faire une fonction virtuelle pure.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    virtual void display(7 arguments) = 0;
    (du moins, c'est �a en C++, ce doit �tre �a aussi en C++/CLI).
    Edit: Ben non.
    J'avais un doute, h�las fond�...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    non, ca n'est pas le cas
    pour que ca soit CLS compliant, il faut faire comme indiqu� dans la faq C++/CLI http://dotnet.developpez.com/faq/cpp...rface#abstract

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Visual studio Express 2005
    Par starvel dans le forum Visual Studio
    R�ponses: 2
    Dernier message: 21/05/2010, 14h35
  2. Installation de Visual Studio Express 2005
    Par JPV_69 dans le forum Visual Studio
    R�ponses: 1
    Dernier message: 21/02/2007, 16h50
  3. Visual Studio Express 2005 - Forms + DLL?
    Par Jean_Benoit dans le forum Visual C++
    R�ponses: 2
    Dernier message: 22/10/2006, 23h31
  4. [IDE]Que pensez vous de Visual Studio .NET 2005 ?
    Par Louis-Guillaume Morand dans le forum G�n�ral Dotnet
    R�ponses: 56
    Dernier message: 15/08/2006, 11h39
  5. R�ponses: 1
    Dernier message: 19/06/2006, 10h24

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