Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2752 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Friend & Surcharges

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Friend & Surcharges

n°482337
LajioT
Posté le 10-08-2003 à 11:45:59  profilanswer
 

Bonjour à tous.
 
Le bout de code ci dessous ne fonctionne pas sous vc++6. Il me renvoie 7 erreurs. :/
Telle que :
error C2248: 'sz' : cannot access private enumerator declared in class 'IntArray' et autres du même genre, ainsi que operator >>' is ambiguous (idem pour << )
On pourrait me dire pourquoi ? (les fonctions sont bien définies en tant que friend pourtant!)
 

Code :
  1. #include <iostream>
  2. #include <sstream>
  3. #include <cstring>
  4. using namespace std;
  5. class IntArray {
  6. enum { sz = 5 };
  7. int i[sz];
  8. public:
  9. IntArray() { memset(i, 0, sz* sizeof(*i)); }
  10. int& operator[](int x) { return i[x]; }
  11. friend ostream& operator<<(ostream& os, const IntArray& ia);
  12. friend istream& operator>>(istream& is, IntArray& ia);
  13. };
  14. ostream& operator<<(ostream& os, const IntArray& ia) {
  15. for(int j = 0; j < ia.sz; j++) {
  16. os << ia.i[j];
  17. if(j != ia.sz -1)
  18. os << ", ";
  19. }
  20. os << endl;
  21. return os;
  22. }
  23. istream& operator>>(istream& is, IntArray& ia){
  24. for(int j = 0; j < ia.sz; j++)
  25. is >> ia.i[j];
  26. return is;
  27. }
  28. int main() {
  29. stringstream input("47 34 56 92 103" );
  30. IntArray I;
  31. input >> I;
  32. I[4] = -1; // Use overloaded operator[]
  33. cout << I;
  34. }


 
Voilà, merci..

mood
Publicité
Posté le 10-08-2003 à 11:45:59  profilanswer
 

n°482343
polo021
Posté le 10-08-2003 à 11:55:06  profilanswer
 

je viens de faire un copier/coller de ton code dans vc6 et aucun probleme, juste un warning parce que le main ne retourne rien.
 
 
comme sortie, j'ai  
47, 34, 56, 92, -1

n°482347
red factio​n
Posté le 10-08-2003 à 11:58:10  profilanswer
 

cherche pas trop c un bug de chez crosoft moi aussi jai eu le meme probleme  :fou:  
 
faut installer le service pack vc6 ou ne pas utiliser namespace std avec friend et loperateur <<

n°482349
LajioT
Posté le 10-08-2003 à 11:59:24  profilanswer
 

arf oké, merci. :)

n°482350
red factio​n
Posté le 10-08-2003 à 11:59:52  profilanswer
 
n°482352
LajioT
Posté le 10-08-2003 à 12:03:14  profilanswer
 

Ahhh, merci beaucoup redfaction !  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Friend & Surcharges

 

Sujets relatifs
[VC++]friend classMy friend Java
[java] ca existe les surcharges d'opérateurs ??[C++] problème avec des opérateurs surchargés
[C++] friend et fatal error C1001: INTERNAL COMPILER ERROR[C++] friend ca veut dire ami en anglais non ?
Plus de sujets relatifs à : Friend & Surcharges


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)