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 :

MSVC 2005 Bugg�


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    204
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Par d�faut MSVC 2005 Bugg�
    Bonjour,
    Voici un bug sur MSVC

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include "stdafx.h"
     
    class TESSAI
    {
    public:
    	void printer();
    };
     
    class TESSAI2 : public TESSAI
    {
    public:
    	bool b;
    	virtual void printer();
    };
     
    void TESSAI::printer()
    {
    	printf("Premier objet\n");
    }
     
    void TESSAI2::printer()
    {
    	printf("Dérivé\n");
    	TESSAI::printer();
    }
     
    typedef TESSAI* PESSAI;
    typedef TESSAI2* PESSAI2;
     
    void callprinter(PESSAI ess)
    {
    	ess->printer();
    }
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	PESSAI2 ess2;
    	ess2=new TESSAI2;	
    	callprinter(ess2);
    	TCHAR tmp[128];
    	scanf("%s",tmp);
    	return 0;
    }
    Il doit m'afficher
    D�riv�\n
    et
    Premier objet\n
    car je lui passe un classe TESSAI2 "callprinter(ess2) qui est PESSAI2

    Je passe la valeur ess2 qui est PESSAI2 ET NON PESSAI ;
    et il m'affiche seulelemtn "Premier Objet"
    Visual Studio ne prend pas en charge les d�rivations d'objet !
    donc cst bugg� !


    La solution serait de
    void callprinter(PESSAI2 ess) ; evidemment ,
    mais je refuse cet solution , car je vais developper un logiciel avec des
    interface IHM d�riv� sur une seule objet comme fait le MFC ;
    Explication d'exemple
    Sur un objet il y a un �v�nement WM_PAINT appeler , le logiciel va rechercer l'objet grace au tag et identificateur d'objet et appel� la fonction
    OnPaint de l'objet.
    Solutuin Utiliser MFC , mais je refuse je fonctionne comme �a pour mon future logiciel IHM

    Donc comment je fais ?

    Merci bcp

  2. #2
    Membre chevronn�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Par d�faut
    Hello,



    Sinon je pense qu'en d�clarant la m�thode virtuelle dans la classe de base �a fonctionnerait un poil mieux :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    class TESSAI
    {
    public:
    virtual void printer();
    };

  3. #3
    Membre �clair� Avatar de cynique
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    60
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par d�faut
    Citation Envoy� par sivaller Voir le message
    Bonjour,
    Voici un bug sur MSVC
    Mais non, c'est un bug sur ton code.

    Citation Envoy� par sivaller Voir le message
    #include "stdafx.h"

    class TESSAI
    {
    public:
    void printer();
    };
    Voici ton erreur. Tu dois �crire le "virtual" sur la classe de base, et puis le fonction "printer()" de la classe deriv�e surchargera le "printer()" de la classe base.

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    2 155
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 155
    Par d�faut
    Y'en a qui n'ont pas froid aux yeux ! Visual bugg� !
    Effectivement, il manque un "virtual", et je t'encourage donc � aller regarder les cours de C++ propos� par DVP.com !!!

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    204
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 204
    Par d�faut Corrig�
    Ca marche avec la m�thode virtuel ;

    Par contre ce serait pour exporter TESSAI2 sur une DLL,
    comment on peux faire ?

    Merci

  6. #6
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par poukill Voir le message
    Y'en a qui n'ont pas froid aux yeux ! Visual bugg� !
    Ne soyons pas mesquins: il arrive de temps en temps qu'on s'aper�oive que Visual C++ 2005 est vraiment bugg�.

    (I know, I'm shameless)
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  7. #7
    yan
    yan est d�connect�
    R�dacteur
    Avatar de yan
    Homme Profil pro
    Ing�nieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Ing�nieur expert
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par d�faut
    Citation Envoy� par Emmanuel Deloget Voir le message
    Ne soyons pas mesquins: il arrive de temps en temps qu'on s'aper�oive que Visual C++ 2005 est vraiment bugg�.

    (I know, I'm shameless)

    C'est pas plut�t parce que tu fait des sp�cialisations partielle de template?

  8. #8
    yan
    yan est d�connect�
    R�dacteur
    Avatar de yan
    Homme Profil pro
    Ing�nieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Ing�nieur expert
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par d�faut
    Pour le FizzBuzz

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #include <iostream>
     
    template <int n> 
    struct fizzbuzz : fizzbuzz<n-1>
    {
      fizzbuzz() 
      { 
          const bool fizz = Fizz<n%3>();
          if (  Buzz<n%5>() || fizz)
          {
                std::cout << std::endl; 
          }
          else
          {
            std::cout << n << std::endl; 
          }
      }
     
      template <int n>
      bool  Fizz()
       {
           return false;
       }
     
      template<>
      bool Fizz<0>()
        {
            std::cout << "Fizz"; 
            return true;
        }
     
      template <int n>
      bool  Buzz()
       {
           return false;
       }
     
        template<>
        bool Buzz<0>()
        {
            std::cout << "Buzz"; 
            return true;
        }
    };
    template <> 
    struct fizzbuzz<0> 
    {
        fizzbuzz() 
          { 
                std::cout << 0 << std::endl; 
          }
    };
     
    int main()
    {
      fizzbuzz<100> fb;
    }

  9. #9
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par Mongaulois Voir le message

    C'est pas plut�t parce que tu fait des sp�cialisations partielle de template?
    Je n'ai jamais dit que le code n'�tait pas marrant. Mais si je me rappelle les tests effectu�s, �a passe avec comeau C++ et les derni�res g�n�rations de g++. Le probl�me est dans la r�cursivit� - que Visual C++ n'arrive pas � g�rer correctement - et dans les sp�cialisations partielles - que Visual C++ est capable de g�rer correctement dans certaines circonstances. Mais au final, il s'agit quand m�me d'un probl�me de VC++ - qui ne devrait pas planter.

    Certes, il y a des mani�res plus simples d'�crire ce programme, mais je cherchais surtout une mani�re de l'�crire qui n'avait pas de sens. Je suis content, j'ai trouv�.
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

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

Discussions similaires

  1. Big Bug sur MSVC 2005 ! ne trouve pas la d�claration
    Par sivaller dans le forum Visual C++
    R�ponses: 1
    Dernier message: 30/10/2009, 01h10
  2. R�ponses: 1
    Dernier message: 26/05/2009, 11h56
  3. Migration vers MSVC 2005
    Par ali.tn dans le forum Visual C++
    R�ponses: 3
    Dernier message: 21/11/2007, 14h46

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