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 :

Probl�me de conception


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    D�tails du profil
    Informations personnelles :
    �ge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par d�faut Probl�me de conception
    Bonjour � tous,

    J'essaie de cr�er une GUI en C++ avec la SDL. Pour �a, j'ai cr�� une classe Widget de laquelle sont d�riv�s tous mes contr�les.

    Dans les contr�les existants, on trouve notamment une classe FreeContainer, qui est un contr�le pouvant contenir d'autres contr�les.

    Dans ma classe Widget, j'ai une fonction virtuelle "blit(surface)" qui permet de dessiner le contr�le sur une surface (en g�n�ral, il s'agit de la surface du contr�le p�re).

    Jusqu'ici tout va bien (du moins je crois ).

    Mais ce que j'ai essay� de faire, c'est ajouter une classe MainWindow, qui repr�sente ma fen�tre principale. Comme il s'agit d'un contr�le visible qui peut contenir d'autres contr�les, je l'ai faite h�riter de FreeContainer.

    Mon probl�me (qui me fait penser qu'il y a une erreur dans ma logique de conception), c'est que pour cette classe (et uniquement celle-ci), la fonction "blit(surface)" n'a pas de sens. Quand on affiche la fen�tre principale, il n'est pas n�cessaire de lui indiquer sur quelle surface elle doit se recopier...

    Pour r�soudre mon probl�me, j'ai cr�� dans MainWindow une fonction "blit()" et j'ai red�fini la fonction "blit(surface)", qui ignore son param�tre et ex�cute simplement blit(). Mais cette solution, si elle fonctionne, ne me parait pas tr�s propre

    Qu'est-ce que vous en pensez ?
    Merci pour vos lumi�res !

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Ca ne me para�t pas si idiot que �a. Surtout que c'est tr�s simple, si tu cherches autre chose tu vas te compliquer la vie pour peut-�tre rien.

    Par contre inutile de cr�er une nouvelle fonction juste pour ignorer le param�tre, surtout si elle n'est pas appel�e � partir d'ailleurs.

  3. #3
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    D�tails du profil
    Informations personnelles :
    �ge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par d�faut
    Merci pour tes commentaires.

    Si j'ai voulu cr�er une nouvelle fonction blit(), c'est parce que je trouve plus propre de l'appeler que de faire un truc comme maFenetrePrincipale.blit(NULL). Mais bon, il est vrai que je pourrais m'en passer

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    D�tails du profil
    Informations personnelles :
    �ge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par d�faut
    Bon, ben s'il n'y a que moi que �a g�ne d'avoir une classe qui n'impl�mente pas vraiment toutes les fonctions de sa classe de base, je vais me faire une raison ^^

    Allez, je marque le sujet r�solu et je continue mon projet

    Merci encore Laurent !

  5. #5
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Qu'est-ce qui t'emp�che de mettre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    void blit(type_surface *surface = NULL) { }

  6. #6
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    D�tails du profil
    Informations personnelles :
    �ge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par d�faut
    Citation Envoy� par Alp
    Qu'est-ce qui t'emp�che de mettre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    void blit(type_surface *surface = NULL) { }
    J'y ai pens�, mais est-ce que "blit(type_surface *surface = NULL)" peut supplanter la fonction virtuelle de ma classe de base "blit(type_surface *surface)" ?

    Je me disais que puisque la signature n'�tait pas exactement la m�me, �a ne devait aps fonctionner... mais j'avoue ne pas avoir essay�

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

Discussions similaires

  1. M�thode Finalize et probl�me de conception
    Par phryos dans le forum Langage
    R�ponses: 4
    Dernier message: 19/04/2006, 11h04
  2. [VB6][UserControl et OCX]Probl�me de conception
    Par jacma dans le forum VB 6 et ant�rieur
    R�ponses: 8
    Dernier message: 19/01/2006, 22h37
  3. Petit probl�me de conception sur access
    Par coooookinette dans le forum Mod�lisation
    R�ponses: 3
    Dernier message: 18/12/2005, 18h24
  4. Gestion des d�partements probl�me de conception
    Par snoopy69 dans le forum Mod�lisation
    R�ponses: 7
    Dernier message: 11/10/2005, 13h08
  5. Probl�me de conceptions de tables
    Par dtavan dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 23/05/2004, 23h13

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