No match for 'operator<<' in 'std::operator<<

#ifndef DROITE3D_H
#define DROITE3D_H
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<Point3D.h>
#include<Vecteur3D.h>

class Droite3D
{
Point3D Point;
Vecteur3D Vecteur;

public:
Droite3D(){
Point= Point3D();
Vecteur= Vecteur3D();
}

Droite3D(Point3D p, Vecteur3D v){
Point=p;
Vecteur=v;
}

void afficher();
void afficher ( ostream & out) const;
};

********************************************************************

#include "Droite3D.h"
#include<iostream>

void Droite3D::afficher ( ostream & out) const{
std::cout <<"\n c'est la droite definie par le point "<<Point<<" et le vecteur "<<Vecteur;
}// c'est là le problème

ostream & operator<< (ostream & out, const Droite3D &D)
{
D.afficher (out);
return out;
}

void Droite3D::afficher(){
std::cout <<"\nc'est la droite definie par le point "<<Point<<" et le vecteur "<<Vecteur;
}

3 réponses

  1. dsl j'ai oublié de vous préciser l'erreur :
    error: no match for 'operator<<' in 'std::operator<< <std::char_traits<char> >((* & std::cout), ((const char*)"\012c\'est la droite definie par le point ")) << ((Droite3D*)this)->Droite3D::Point'|
    0
    1. Tu as surtout oublié "Bonjour", "s'il vous plaît", "merci": on appelle ça la politesse.
      Et il y a un truc formidable qui s'appelle la coloration syntaxique (balises "code").
      0
      1. Bonjour, moi je te donne mon avis aprés je suis loin d'étre sur. Essaye de changer "std::cout" par "out" (l'argument reçu).

        void Droite3D::afficher ( ostream & out) const{
        out <<"\n c'est la droite definie par le point "<<Point<<" et le vecteur "<<Vecteur;
        }
        -1