Cout endl

vlavin Messages postés 21 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 9 juillet 2011 - 28 août 2010 à 16:42
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 29 août 2010 à 11:41
débutant en c+

Bonjour a tous.
j'ai un petit problème avec 'cout' et 'endl' dans ma classe derivé
le compilateur me dit que ils sont pas déclare, mais include est présent.

//---------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
#include
#include <string.h>
#include "Camion.h"


//---------------------------------------------------
Camion::Camion():Gar_Vehicule()
{

Poids = 0;
idClasse = 0;
idClasse = codeVOITURE;

}

//-----------------------------------------------------
Camion::Camion(const char* aMarque,long aPrix,unsigned long aIdPere,long aPoids):Gar_Vehicule(aMarque,aPrix,aIdPere)
{
Poids = aPoids;
}
//----------------------------------------------------------
Camion::Camion(const Camion& Source):Gar_Vehicule(Source)
{
Poids = Source.Poids;
}

//-----------------------------------------------------
char* Camion::Action(Camion& Source)
{
if(Source.Prix > 100000)
Source.Poids = 40;


cout << " C'est un poids lourd, son poids est de " << Poids << " tonne." << endl;
}
//-----------------------------------------------------
int Camion::Identification(void)
{
return(idClasse);
}
//-----------------------

3 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
28 août 2010 à 19:52
Salut,

C'est tout à fait normal, il faut préciser le namespace, ici std. Bref, il te faut utiliser std::cout et std::endln. Tu trouveras sans doute beaucoup de code utilisant "#
using namespace std" afin de ne pas avoir à préciser std, à ce sujet je te conseilel très fortement de lire et te référer au lien suivant : Du bon usage du using namespace
0
vlavin Messages postés 21 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 9 juillet 2011 1
29 août 2010 à 09:46
Merci TychoBrahe

T'avez raison.
Peut tu m'aider pour un autre probleme?


J'ai ma fonction
//-----------------------------------------------------
void Voiture::Action(Voiture& Source)
{
if(Source.Prix >= 10000)
Source.CvFisc = 8;

cout << "BlaBla" << Source.CvFisc << endl;

}
//-----------------------------------------------------
Qui se trouve dans la classe derive:
( class Voiture : public Gar_Vehicule)


Je voudrais afficher le resultat dans une autre classe

void FormGar_Vehicule::Afficher (Gar_Vehicule& Vehicule)
{

cout << "Id Vehicule : " << Vehicule.GetId () << endl;
ici--> cout << Vehicule.Action(Vehicule) << endl;
cout << "Marque : " << Vehicule.GetMarque(buf,FORMBUFLENVH) << endl;
cout << "Prix : " << Vehicule.GetPrix()<< " euros " << endl;
cout << "Apartien au client : " << Vehicule.GetIdPere() << endl;
}

Voila le message du compilateur
error C2679: '<<' binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'void' (ou il n'existe pas de conversion acceptable)
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
29 août 2010 à 11:41
Salut,

Pour faire ce que tu souhaite il te suffit de modifier ta méthode Action() afin qu'elle retourne quelque chose. Là vu qu'elle ne retourne rien, Vehicule.Action(Vehicule) est équivalent à rien du tout, il est donc normal que l'erreur soit générée.
0
Rejoignez-nous