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 :

interface C++ java


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut interface C++ java
    Bonjour à tous



    J'ai une question peut être un peu bête, je ne sais pas trop comment chercher ça. Je voudrais faire s'équivalent d'une interface en java.

    J'ai voulu faire une classe qui contient que des fonctions virtuelles sans constructeurs. Mais je n'arrives pas à hériter de cette classe.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #ifndef LEARNING_H_
    #define LEARNING_H_
     
    class Learning
      {
    public:
        virtual void start();
        virtual ~Learning();
      };
     
    #endif /*LEARNING_H_*/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #ifndef GENETICALGORITHM_H_
    #define GENETICALGORITHM_H_
     
    class GeneticAlgorithm : virtual public Learning
      {
    public:
        GeneticAlgorithm();
        virtual ~GeneticAlgorithm();
      };
     
    #endif /*GENETICALGORITHM_H_*/

    Merci d'avance

  2. #2
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut
    En quoi cela ne marche pas, quels sont les erreurs générées ?

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    Il ne voulait pas me creer la classe GeneticAlgorithm il ne considerait pas Learning comme une classe. Mais maintenant ça marche. Je ferrais un copier coller du code ce soir si ça intéresse quelqu'un

    Merci.

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    n'oublies pas de mettre tes fonctions virtuelles pures....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef LEARNING_H_
    #define LEARNING_H_
     
    class Learning
      {
    public:
        virtual void start() = 0 ;
        virtual ~Learning() = 0 ;
      };
     
    #endif /*LEARNING_H_*/
    Voire même de spécifier que la classe ne doit pas contenir de vtable.... Ca évitera un constructeur généré par défaut...
    (ca dépend du compilateur par contre... sous MSVC c'est un truc genre __declspec(novtable) ).

  5. #5
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    J'avais effectivement oublié ça.

    Maintenant j'ai ça:

    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
     
    #ifndef LEARNING_H_
    #define LEARNING_H_
     
    class Learning
      {
    public:
        virtual ~Learning()
          {
          }
        ;
     
        virtual void start() = 0;
        virtual void stop() = 0;
     
      };
     
    #endif /*LEARNING_H_*/

    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
     
    #ifndef GENETICALGORITHM_H_
    #define GENETICALGORITHM_H_
     
    #include "Learning.h"
     
    class GeneticAlgorithm : public Learning
      {
    public:
        GeneticAlgorithm();
        ~GeneticAlgorithm();
     
        virtual void start();
        virtual void stop();
      };
     
    #endif /*GENETICALGORITHM_H_*/

    Vous en pensez quoi ?

  6. #6
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut
    Je mettraisen virtuel

  7. #7
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    Je ne sais pas encore si je ne vais pas rajouter des attributs à ma classe, je vais mettre le destructeur en virtuel pour l'instant, mais je ne pense pas hériter de cette classe.

    Je mets résolu et je le retirerais et je reposterais si j'ai un soucis.

    Merci tout le monde

  8. #8
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Citation Envoyé par JeromeBcx Voir le message
    Je mettraisen virtuel
    C'est implicite.

    Par contre, mon expérience du domaine me fait dire que l'h'éritage (façon substituabilité) n'apporte pas grand chose vu les différents types d'apprentissages qui existent (entre le supervisé, le non supervisé, le guidé (-> RL), etc). Très vite on se retrouve avec un besoin de duck-typing et là l'héritage public trouve ses limites.

  9. #9
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Points : 52
    Points
    52
    Par défaut
    Merci de ta réponse Luc Hermitte.

    Je la garde précieusement, mais dans le cadre de cd projet on va se limiter à peu d'algorithmes d'apprentissage donc ça devrait aller. Mais je n'oublierais pas de te citer dans notre rapport si les autres veulent bien.

  10. #10
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Tu peux. Ce n'est que la conclusion de mon analyse.
    J'avais tenter de réunir tous les apprentissages possibles (quelque soit le problème) via l'héritage, et j'ai fini dans une impasse. Ai-je manqué d'imagination? Ai-je été trop exigeant? Me suis-je planté? Qui sait?!

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

Discussions similaires

  1. Interface graphique java swing awt toolkit
    Par MaxLaMenaX dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 06/11/2008, 16h39
  2. Interface visual Java
    Par Queb dans le forum Débuter
    Réponses: 4
    Dernier message: 21/11/2007, 22h16
  3. Sicstus / Interface prolog java
    Par superhu dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2007, 16h58
  4. faire des interfaces en Java
    Par 18Marie dans le forum Langage
    Réponses: 1
    Dernier message: 08/09/2006, 21h39
  5. Composants à utiliser pour une interface graphique Java
    Par nicolas.pied dans le forum Composants
    Réponses: 4
    Dernier message: 28/11/2005, 21h27

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