Partage
  • Partager sur Facebook
  • Partager sur Twitter

aggregation en c++

passage par pointeur

    9 avril 2022 à 19:41:35

    bonjour, j'essaye de passer d'un diagramme en Uml vers c++

    j'ai réalisé le code mais j'ai des erreurs est ce que quelqu'un peut m'aider

    //le code de service.h
    #include "iostream"
    #include "employe.h"
    using namespace std;
    
    class service
    {
    public:
    	service(string nom);
    	employe *set_receptionniste();
    private:
    	string nom;
    };
    //le code d'employe.h
    #pragma once
    #include "iostream"
    using namespace std;
    
    class employe
    {
    public:
    	employe(string nom,int id,float salaire);
    	float setsalaire(float salaire);
    private:
    	string nom;
    	int id;
    	float salaire;
    };
    //le code d'employe.cpp
    #include "employe.h"
    
    employe::employe(string nom, int id, float salaire)
    {
    	this->nom = nom;
    	this->id = id;
    	this->salaire = salaire;
    }
    
    float employe::setsalaire(float salaire)
    {
    	return 0.0f;
    }
    //le code de service.cpp
    #include "employe.h"
    using namespace std;
    
    
    service::service(string nom)
    {
    	this->nom = nom;
    	*this->set_receptionniste();
    }
    
    employe * service::set_receptionniste()
    {
    	set_receptionniste = employe();
    }

    Voilà l'erreur en question

    • Partager sur Facebook
    • Partager sur Twitter
      9 avril 2022 à 21:36:44

      Tu as mal lu la signature de ton setter pour receptioniste. Dans ton UML, tu as : "set_receptionniste(e:Employe)", c'est a dire que ta fonction doit prendre un paramètre "Employe".

      Ta fonction devrait donc avoir la forme :

      void service::set_receptionniste(employe* e)
      {
          receptioniste_ = e; 
      }

      (A priori, tu dois ajouter un membre "receptioniste_", mais ce n'est pas sur ton UML).

      Et plus généralement, les getters et setters servent a assigner ou lire une variable membre. Par exemple :

      class Example {
      private:
          int une_valeur_ = 0;
      public:
          // le setter
          void set_une_valeur(int valeur) {
              une_valeur_ = valeur;
          }
      
          // le getter
          int get_une_valeur() const {
              return une_valeur_;
          }
      };

      ---------------------------------------------------------------------------------------------

      En complément :

      - jamais du "using namespace" dans un .h.

      - ton UML semble assez mauvais

      - ton cours semble assez mauvais. Change si tu peux.

      • Partager sur Facebook
      • Partager sur Twitter

      aggregation en c++

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown