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 :

error: expected primary-expression before 'int'


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de moniroje
    Homme Profil pro
    retrait�
    Inscrit en
    F�vrier 2006
    Messages
    17
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 82
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 17
    Par d�faut error: expected primary-expression before 'int'
    Bonjour...
    pas fier mais bon, voil� un truc que je ne pige pas:
    Pourquoi il me dit:
    error: expected primary-expression before 'int' 4 fois de suite et
    error: expected primary-expression before 'marque'
    error: expected primary-expression before 'couleur'
    pour cette impl�mentation de constructeur:
    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
     
    #include <iostream> 
    #include "Camion.h"
    // #include "Vehicule.h"
    /* dans ton fichier Camion.cpp tu inclus Camion.h qui inclut dejà Vehicule.h,
    * donc à priori pas besoin de ré-inclure Vehicule.h dans Camion.cpp */
     
    using namespace std;
     
     int tonnage(3);
    Camion :: Camion(int tonnage) :
      Vehicule (int prix, int nbRoues, int annee, int vitesse, std::string marque, std::string couleur),
      m_tonnage(tonnage)
      {
      }

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Par d�faut
    Je suis sur un tel donc c est pas pratique pour les copier coller mais ton initialisation de vehicule ressemble a (trop) s y meprendre a une sorte de declaration de fonction.... c est super zarbi.
    Si tu appelles une fonction tu ne dois pas mettre les types des variables, seulement les variables a envoyer a la fonction.

  3. #3
    Membre �m�rite

    Homme Profil pro
    Non disponible
    Inscrit en
    D�cembre 2012
    Messages
    478
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Non disponible

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par d�faut
    Bonjour,

    Le probl�me est que le constructeur de camion doit prendre en param�tre ceux de vehicule.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    Camion :: Camion(int prix, int nbRoues, int annee, int vitesse, std::string marque, std::string couleur, int tonnage) :
      Vehicule (prix, nbRoues, annee, vitesse, marque, couleur),
      m_tonnage(tonnage)
      {
      }
    Ensuite ceci n'a rien � faire ici. Le tonnage sera entr� lors de l'instantiation de Camion.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Vehicule* camion = new Camion(30000, 6, 1990, 90, "MAN", "Bleu", 20/*tonnage*/);
    #edit
    Si pour Camion le tonnage est fixe :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    Camion :: Camion(int prix, int nbRoues, int annee, int vitesse, std::string marque, std::string couleur) :
      Vehicule (prix, nbRoues, annee, vitesse, marque, couleur),
      m_tonnage(3)
      {
      }

  4. #4
    Membre averti Avatar de moniroje
    Homme Profil pro
    retrait�
    Inscrit en
    F�vrier 2006
    Messages
    17
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 82
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 17
    Par d�faut
    @ BagonV: Bonsoir et pardon d'avoir tant tard� � r�pondre. Mais bon, il me faut r�fl�chir � votre r�ponse, r�viser; et puis voil�:vous me dites que j'appelle le constructeur Vehicule et quand
    j'appelle une m�thode, je ne dois l'appeler que avec ses variables sans
    mentionner leurs tvpes.
    OK, je vais faire ainsi dans tous les .cpp, comme ci-dessous:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
      Vehicule (prix, nbRoues, annee, vitesse, marque, couleur),
    ce qui =>:
    error: 'prix' was not declared in this scope
    bon, c'est quoi, ce foutoir?? les variables ont �t� d�clar�es dans la classe-m�re
    Vehicule que ici je dis que la classe Camion h�rite! �a ne se h�rite pas,
    les variables???

  5. #5
    Membre averti Avatar de moniroje
    Homme Profil pro
    retrait�
    Inscrit en
    F�vrier 2006
    Messages
    17
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 82
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 17
    Par d�faut
    @PilloBuenaGente: j'ai suivi tes conseils sur toutes mes classes comme
    pour Camion.cpp:
    d'abord pour le tonnage dans la classe Camion: j'avais mis 3 comme une
    valeur-bidon; mais OK, r�vision pages 53 et 53, quand on ne sait pas quoi, on
    ne met rien et pas de parenth�ses non plus:
    int tonnage;
    et:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    Camion :: Camion(int prix, int nbRoues, int annee, int vitesse, std::string
    marque, std::string couleur, int tonnage) :
      Vehicule (prix, nbRoues, annee, vitesse, marque, couleur),
      m_tonnage(tonnage)
      {
      }
    les autres classes-fille � l'identique.
    Mais le compilateur d�cidemment, il ne m'aime pas et me balance:
    Camion.cpp|34|error: prototype for
    �Camion::Camion(int, int, int, int, std::string, std::string, int)� does not
    match any in class �Camion�|
    heu... j'ai pas fait quoi, l�??? il veut que pour chacune des classes je me
    retape les d�clarations de variables de la classe-m�re Vehicule ???
    L'h�ritage, c'est de la blague??? on h�rite de presque rien??? � quoi �a sert
    alors???
    et pour bien me punir, il rajoute :
    Camion.h|7|error: candidates are: Camion::Camion(const Camion&)|
    Camion.h|13|error: Camion::Camion(int)|
    Bon, l�, j'avoue, je suis un peu (beaucoup) d�courag�...
    Vu ma sant�, ferai peut-�tre mieux d'apprendre mes pri�res plut�t que le C++ ;
    non, je rigole; pour cacher que je suis si b�te.
    Je vous adjoins mon Camion.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
    20
    21
    22
    23
    #ifndef CAMION_H_INCLUDED
    #define CAMION_H_INCLUDED
    #include <iostream>
    #include <string>
    #include "Vehicule.h" // ben oui, pour en hériter
     
    class Camion: public Vehicule  // ici est la ligne 7 error
    {
      public:
        // le constructeur de la classe Camion:
        Camion (int tonnage); // ici est la ligne 13: error 
        virtual ~Camion(); 
        /* de toute façon, à quoi sert ce destructeur ? puisque je delete dans le
         * main, en fin de job, avec la boucle for  */
         virtual void affiche() const; 
      private:
       /* la classe-mère a en protected les attributs m_prix, m_nbRoues, m_annee,
        * m_vitesse, m_marque; ces attributs sont hérités par cette classe Camion
        * J'ajoute un attribut spécifique aux seuls camions: le tonnage: */
        int m_tonnage;
    };
     
    #endif // CAMION_H_INCLUDED
    Ou alors j'apprends � planter des choux???

  6. #6
    Membre �m�rite

    Homme Profil pro
    Non disponible
    Inscrit en
    D�cembre 2012
    Messages
    478
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Non disponible

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par moniroje Voir le message
    error: 'prix' was not declared in this scope
    C'est souvent une erreur orthographique.
    La r�ponse est sans doute dans la ligne du dessus.

    Citation Envoy� par moniroje Voir le message
    les autres classes-fille � l'identique.
    Comment �a � l'indentique ?
    Citation Envoy� par moniroje Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Camion (int tonnage); // ici est la ligne 13: errorCamion (int tonnage);
    // ici est la ligne 13: error
    La d�claration de la variable(ou autre) doit correspondre entre le fichier source(.cpp) et le header(.h)
    Celle de Camion.h devrait �tre :
    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
    #ifndef CAMION_H_INCLUDED
    #define CAMION_H_INCLUDED
    #include <iostream>
    #include <string>
    #include "Vehicule.h" // ben oui, pour en hériter
     
    class Camion: public Vehicule  // ici est la ligne 7 error
    {
      public:
        // le constructeur de la classe Camion:
        Camion (int prix, int nbRoues, int annee, int vitesse, std::string marque, std::string couleur, int tonnage); // ici est la ligne 13: error 
        virtual ~Camion(); 
        /* de toute façon, à quoi sert ce destructeur ? puisque je delete dans le
         * main, en fin de job, avec la boucle for  */
         virtual void affiche() const; 
      private:
       /* la classe-mère a en protected les attributs m_prix, m_nbRoues, m_annee,
        * m_vitesse, m_marque; ces attributs sont hérités par cette classe Camion
        * J'ajoute un attribut spécifique aux seuls camions: le tonnage: */
        int m_tonnage;
    };
     
    #endif // CAMION_H_INCLUDED
    #Edit
    Camion.h|7|error: candidates are: Camion::Camion(const Camion&)|
    Camion.h|13|error: Camion::Camion(int)|
    Ici le compilateur donne la fonction qui est sens�e servir, et celle qu'on lui envoie.

    #Edit II
    Exemple bidon des hierarchies :
    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
    class Mere
    {
    public:
    	int a;
    protected:
    	int b;
    private:
    	int c;
    };
     
    class Fille : public Mere
    {
            Fille()
    	{
    		a = 5;//OK
    		b = 5;//OK
    		c = 5;//ERROR
    	}
    };
     
    int main()
    {
    	Mere* f = new Fille();
    	f->a = 5;//OK
    	f->b = 5;//ERROR
    	f->c = 5;//ERROR
     
    	return 0;
    }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. expected primary-expression before '->' token
    Par namecha dans le forum D�buter
    R�ponses: 2
    Dernier message: 14/04/2012, 15h50
  2. R�ponses: 2
    Dernier message: 16/11/2011, 11h25
  3. R�ponses: 2
    Dernier message: 08/02/2010, 10h00
  4. R�ponses: 3
    Dernier message: 15/05/2009, 16h18
  5. expected primary-expression before '=' token
    Par steph_p dans le forum D�buter
    R�ponses: 4
    Dernier message: 02/02/2009, 16h03

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