salut,
Je développe sur Windows XP Pro Pack 2, avec Visual 6.
Tout fonctionnait à merveille, jusqu'à ce que je passe de Visual C++ 6 à Visual 2005 béta. Voyant que mon système en était considérablement ralenti, j'ai décidé de désinstallé V2005 béta.
C'est là que tout commence : j'ai désinstallé V2005 sans respecter l'ordre de désinstallation. J'ai donc fait un point de restauration à une date antérieure à l'installation de Visual 6 (!). Suite à quoi, j'ai réinstallé Visual 6.
Depuis, le compilateur de C++ débloque : lorsque je déclare un opérateur (par exemple <<) comme ami d'une classe, le compilateur renvoie une erreur si j'utilise les membres privés des arguments de l'opérateur (qui sont bien de la classe dont l'opérateur est ami).
la sécance est la suivante : (ceux qui ont utilisé le livre de C. Delannoy reconnaitront certainement :) )
#include <iostream>
using namespace std ;
class point
{
int x, y ;
public :
point (int abs=0, int ord=0) { x = abs ; y = ord ; }
int abscisse () { return x ; }
friend ostream & operator << (ostream &, point) ;
} ;
ostream & operator << (ostream &sortie, point p)
{ sortie << "<" << p.x << "," << p.y << ">" ;
return sortie ;
}
le message du compilateur est un truc du style : x est déclaré comme privé et ne peut être accédé par l'opérateur <<.
J'ai essayé de compiler ce programme sur d'autres compilateurs (ancienne instal de Visual 6 et Dev C++) et ca marche !
AU SECOUUUUURRRRR !!!