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 :

Conception et Implementation


Sujet :

C++

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut Conception et Implementation
    Bonjour

    je suis debutant en c++ ( et egalement un peu refractaire), je programme un interface graphique pour mon arduino.
    Et je me heurte a ma meconnaisance du c++ , je souhaite me faire un composant pour charge des ecrans dynamiquement et reagir sur des evenements (changement d'écran principalement).

    ce que je pensais faire :
    ecrire une interface (ou classe abastraite) Screen
    ecrire en ensemble de classe implementant l'interface Screen
    ecrire un classe premetant de charger/decharger/faire une action des objets heritant de l'interface screen.

    lorsque je tente d'ecrire cette dernière classe le compilitateur me sors l'erreur suivante
    ScreenManager.h : CurrentScreen' to be of abstract type 'Screen'
    Screen.h : because the following virtual functions are pure within 'Screen'

    voici un extrait de mon code
    interface Screen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Screen
    {
    public:
    	virtual void Init()=0;
    	virtual void Draw()=0;
    	virtual char* DoAction()=0;
    	virtual char* Name()=0;
    };

    classe ScreenManager
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include "Screen.h";
    class ScreenManager
    {
    public:
    	ScreenManager(void);
    	Screen CurrentScreen;
    	int Add(Screen screen);
    	void DrawScreen();
    };
    Voila
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    l'erreur indique que tu essayes d'utiliser un Screen, ce qui est impossible parce que abstraite.
    Ta signature int Add(Screen screen) passe le paramètre par copie, ce qui crée un Screen lors de l'appel : impossible.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    Donc avec un passage par références je ne devrais plus avoir de problème ?

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Par défaut
    Citation Envoyé par jeff_! Voir le message
    Donc avec un passage par références je ne devrais plus avoir de problème ?
    Oui, c'est ça qu'il faut faire.

    @issam.abdallah :

    bonjour,
    ce que tu dis est vrai, mais ça ne répond au problème du PO: pour que ça fonctionne au niveau de sa signature il faut qu'il passe par référence, sinon il y aura quand même tentative de construction d'une instance de Screen à l'appel, même si l'objet passé est d'un sous-type. D'ailleurs, même si Screen était une classe concrète, il ne faudrait PAS essayer de passer par copie une classe dérivée à la méthode à cause du problème du slicing: la nature dérivée serait perdue à l'appel, avec des effets paradoxaux s'il y a des fonctions virtuelles!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    Merci a tous
    le passage par reference à resolue mon probleme
    mais du coup j'ai d'autre soucis lier a la bibliothéque que j'utilise.
    je suis donc repassé en c pour le moment

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

Discussions similaires

  1. de la conception vers l'implementation
    Par istatdi dans le forum Autres Diagrammes
    Réponses: 6
    Dernier message: 12/11/2012, 19h00
  2. Problème d'implementation et de conception
    Par Invité1 dans le forum C#
    Réponses: 7
    Dernier message: 14/05/2008, 00h29
  3. Réponses: 6
    Dernier message: 02/12/2007, 15h10
  4. implementation conception uml
    Par Heaven dans le forum UML
    Réponses: 1
    Dernier message: 01/02/2007, 17h44
  5. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16

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