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 :

pb déclaration de classes


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 197
    Points : 58
    Points
    58
    Par défaut pb déclaration de classes
    Bonjour,

    Je débute avec la programmation orientée objet, j'ai un problème de déclaration des classes et des constructeurs. J'ai cherché dans les FAQ mais sans succès. Mon code est assez compliqué donc je vais essayer de résumer le probleme.

    Je commence par déclarer deux classes
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    class truc1 {
    public :
    double longueur; 
    double largeur;
    truc1()
    {};
    ~truc1()
    {};
    void Upgrade()
    {
    longueur = longueur *2.0;
    largeur = largeur *2.0;
    }};
     
    class truc2 {
    public :
    double longueur; 
    double largeur;
    truc2(double init)
    {
    longueur = init;
    largeur = init/2;
    };
    ~truc2()
    {};
    void Upgrade()
    {
    longueur = longueur *3.0;
    largeur = largeur *3.0;
    }};
    Jusque là tout va bien. Ensuite je declare une autre classe qui regroupe les deux
    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
    class touslestrucs {
    public :
    truc1 premiertruc;
    truc2 secondtruc;
    touslestrucs(truc1 input1, truc2 input2)
    {
    premiertruc = input1;
    secondtruc = input2;
    };
    ~touslestrucs()
    {};
    void Upgrade()
    {
    premiertruc.Upgrade();
    secondtruc.Upgrade();
    }};
    Ca ne marche pas. J'ai un message d'erreur du type
    error: no matching function for call to truc2::truc2()
    Quelqu'un aurait une idée ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Il faut que tu utilises les listes d'initialisation et ça va résoudre le problème qui est que truc1 n'a pas de constructeur par défaut et ne peux donc être initialisé dans le constructeur de touslestrucs.

    MAT.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    C'est plutôt truc2 qui aurait besoin d'un constructeur par défaut.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Ah tiens oui, en effet....

    MAT.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2007, 10h23
  2. [amfPhp] Déclaration de classe dans un package
    Par luta dans le forum Dynamique
    Réponses: 6
    Dernier message: 27/09/2006, 16h37
  3. Déclaration de classe
    Par EntraX666 dans le forum Langage
    Réponses: 5
    Dernier message: 29/10/2005, 10h49
  4. Déclaration de classes et méthodes externes
    Par rulianf dans le forum C++
    Réponses: 6
    Dernier message: 15/09/2005, 15h26
  5. Réponses: 5
    Dernier message: 10/11/2004, 19h44

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