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 :

Reorganisation modulaire et problème


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Reorganisation modulaire et problème
    Bonsoir,

    J'avais toutes les classes de mon programme dans un seul header,j'ai donc décidé de le rendre modulaire

    Mais il y a un soucis dont je ne vois pas la cause ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Undefined symbols for architecture x86_64:
      "Vehicule::createVehicule(std::string)", referenced from:
          _main in main-aV2PNG.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make: *** [main] Error 1
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    #include "Vehicule.h"
     
     
    int main()
    {
        Vehicule *v=Vehicule::createVehicule("fr");
        presenter(v);
        return 0;
    }
    Vehicule.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
    18
    19
    #include <iostream>
     
    class Vehicule
    {
    public:
        virtual std::string getMarque() const =0;
        friend std::ostream &operator<<(std::ostream &o,const Vehicule *v);
        static Vehicule* createVehicule(std::string origine);
    };
     
    void presenter(const Vehicule *v)
    {
        std::cout << "Vehicule " << v << std::endl;
    }
     
    std::ostream &operator<<(std::ostream &o,const Vehicule *v)
    {
        return o << v->getMarque();
    }
    Vehicule.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "Vehicule.h"
    #include "CreateurConcretRenault.h"
    #include "CreateurConcretFiat.h"
     
    Vehicule* Vehicule::createVehicule(std::string origine)
    {
        if(origine=="fr") return new CreateurConcretRenault();
        else if(origine=="ita") return new CreateurConcretFiat();
     
        else return new CreateurConcretRenault();
    }
    CreateurConcretRenault.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <iostream>
    #include "Vehicule.h"
     
    class CreateurConcretRenault : public Vehicule
    {
    public:
        std::string getMarque() const;
    };
    CreateurConcretRenault.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include "CreateurConcretRenault.h"
     
    std::string CreateurConcretRenault::getMarque() const
    {
        return "Renault";
    }
    CreateurConcretFiat.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <iostream>
    #include "Vehicule.h"
     
    class CreateurConcretFiat : public Vehicule
    {
    public:
        std::string getMarque() const;
    };
    CreateurConcretFiat.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include "CreateurConcretFiat.h"
     
    std::string CreateurConcretFiat::getMarque() const
    {
        return "Fiat";
    }
    Dernière modification par Invité ; 27/07/2013 à 20h41.

Discussions similaires

  1. [ZF 1.11] appli modulaire et problème d'accès actions
    Par BBFUNK01 dans le forum MVC
    Réponses: 6
    Dernier message: 01/04/2012, 21h03
  2. Réponses: 4
    Dernier message: 03/02/2010, 12h49
  3. Problème debugger en programmation modulaire
    Par Henri dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 04/12/2007, 11h56
  4. Problème d'exponentiation modulaire
    Par Superne0 dans le forum Mathématiques
    Réponses: 16
    Dernier message: 11/11/2007, 15h52
  5. Problème de refresh dans une application modulaire
    Par TigrouMeow dans le forum Windows Forms
    Réponses: 8
    Dernier message: 11/10/2007, 15h06

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