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 :

passage paramettre objet class dans un constructeur


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut passage paramettre objet class dans un constructeur
    bonjour,

    j'ai un constructeur joueur qui prend en parametre un objet d'une classe plateau.

    Joueur::Joueur(string const& name,Plateau const& plateau1,Plateau const& plateau2,TcpSocket const& socket)

    et le compilo me met une erreur du genre

    joueur.cpp:25: error: no matching function for call to 'Plateau:: Plateau()'
    plateau.h:32: note: candidates are: Plateau:: Plateau(const std::string&)
    plateau.h:26: note: Plateau:: Plateau(const Plateau&)
    make: *** [joueur.o] Error 1
    je comprend qu'il essaye de creer un plateau avec le constructeur Plateau() et qu'il n'existe pas.

    j'ai essayer de faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Joueur::Joueur(string const& name,Plateau const& plateau1,Plateau const& plateau2,TcpSocket const& socket) : Plateau(plateau1),Plateau(plateau2)
    mais le compilo dit

    joueur.cpp:25: error: type 'Plateau' is not a direct base of 'Joueur'
    HELP ???

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Points : 42
    Points
    42
    Par défaut
    (Edit, suite à un vieux Tab-Espace qui a validé le message incomplet )

    Il y a sans doute plusieurs erreurs de syntaxe dans ton code.

    Par exemple, le constructeur a la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    nom_classe::nom_classe(param1 p)
     :nom_de_membre(p)
    {
       blablabla
    }
    Appeler Plateau(plateau1) n'a pas de sens ici, puisque Plateau n'est pas la classe de base.

    Consulte les différents tutoriaux, et regarde des exemples de codes pour capter le rôle et la syntaxe du constructeur

  3. #3
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Il faut que tu apprennes la syntaxe des listes d'initialisation ... et quelques autres choses aussi
    Mais commence déjà par les listes d'initialisation : http://c.developpez.com/faq/cpp/?pag...EUR_liste_init

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    merci pour vos reponses mais ca ne m'apporte pas vraiment des masses.

    Alp --> je sais comment fonctionne les listes d'utilisations vu que je les utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Joueur::Joueur(string const& name,Plateau const& plateau1,Plateau const& plateau2,TcpSocket const& socket) : Plateau(plateau1),Plateau(plateau2)
    mais ca ne marche pas


    Syrmonsieur --> merci mais j'ai mis Plateau(plateau1) plus par depit qu'autre chose je connais les differentes synthaxe mais la je comprend pas du tout comment faire.

    autre chose:
    j'ai un constructeur Plateau:lateau(){ // blaba }

    dans mon main je fais un Plateau p();p.find("blabl") il met une erreur du style

    main.cpp:29: error: request for member 'findShip' in 'p', which is of non-class type 'Plateau ()()'

    en java c'est si simple...

  5. #5
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Tu connais en théorie mais visiblement la pratique te manque, c'est pourquoi je t'ai donné le lien.

    La syntaxe c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse() : monattribut(argumentdesonconstructeur), monattribut2(de_meme), etc
    Là tu t'emmêles les pinceaux.

    Tu dois dans ton constructeur initialiser tes données membres avec les valeurs passées en argument au constructeur!

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Alp
    Tu connais en théorie mais visiblement la pratique te manque, c'est pourquoi je t'ai donné le lien.

    La syntaxe c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse() : monattribut(argumentdesonconstructeur), monattribut2(de_meme), etc
    Là tu t'emmêles les pinceaux.

    Tu dois dans ton constructeur initialiser tes données membres avec les valeurs passées en argument au constructeur!

    avant de voir ton message , j'ai regarde mon code et je me suis dit " mais quel con ! c'est pas comme ca qu'on initialise"

    merci en tout cas

  7. #7
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Y'a pas de quoi.
    ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/01/2012, 17h34
  2. Passer une référence à une classe dans un constructeur
    Par alefriedx dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 09/02/2011, 22h07
  3. passage d'une classe dans un cube
    Par paris11 dans le forum Jasper
    Réponses: 0
    Dernier message: 23/04/2009, 16h42
  4. [.NET2.0][C#]Passage type de classe dans une fonction
    Par SLE dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/06/2006, 15h48
  5. [debutant] rappel de la classe dans le constructeur
    Par newtito dans le forum Débuter
    Réponses: 6
    Dernier message: 05/10/2005, 00h15

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