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

  FORUM HardWare.fr
  Programmation
  C++

  Friend declaration error dans une classe Set

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Friend declaration error dans une classe Set

n°1707876
hurang
Posté le 26-03-2008 à 11:00:02  profilanswer
 

Bonjour,
 
désolé de vous dérangez avec un problème que je maitrise assez mal.
Je travaille sur un modèle de produit financier et pour cela j'ai eut besoin d'importer des classes de structure de données depuis le CD d'un bouquin assez sérieux.
Malheureusement j'ai des erreurs de compilation et certains problèmes sont un peu trop techniques pour moi, j'ai beau cherché sur Internet et je ne trouve pas de solution.
L'erreur en question se trouve dans un fichier nommé Set.hpp :
 

Code :
  1. // Standard set operations from High School
  2. friend Set<V> Intersection(const Set<V>& s1, const Set<V>& s2);
  3. Set<V> operator ^ (const Set<V>& s2); // Intersection
  4. friend Set<V> Union(const Set<V>& s1, const Set<V>& s2);
  5. Set<V> operator + (const Set<V>& s2); // Union
  6. friend Set<V> Difference(const Set<V>& s1, const Set<V>& s2);
  7. Set<V> operator - (const Set<V>& s2); // Difference
  8. friend Set<V> SymmetricDifference(const Set<V>& s1, const Set<V>& s2);
  9. Set<V> operator % (const Set<V>& s2); // Symmetric Difference


 
Comme vous le voyez l'auteur définit certains opérateurs mais ce morceau de code produit des erreurs du type :
 
[Warning] friend declaration `Set<V> Intersection(const Set<V>&, const Set<V>& )' declares a non-template function  
[Warning] (if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning  
 
Premièrement, je ne comprend pas ce message et je ne vois pas où je dois ajouter le <> en question (j'ai testé plusieurs possibilité mais ça ne fonctionne pas).
Deuxièmement, j'ai une autre erreur dans le même fichier et dans le .cpp associé, je me demande si c'est lié à ce problème ou non :
 

Code :
  1. Set<pair<V, V2> > result;
  2. set<V>::const_iterator iOuter;
  3. set<V2>::const_iterator iInner;


 
Ces définitions d'itérateurs dans le .hpp produisent le message d'erreur suivant:
In member function `Set<std::pair<V, V2> > Set<V>::CartesianProduct(const Set<V2>& )':  
expected `;' before "iOuter"  
 
J'ai les meme message d'erreur à chaque déclaration d'itérateur dans le fichier Set.cpp.
 
Merci beaucoup pour votre aide.
Bonne journée,
 
Jean.

mood
Publicité
Posté le 26-03-2008 à 11:00:02  profilanswer
 

n°1708424
Joel F
Real men use unique_ptr
Posté le 26-03-2008 à 22:44:12  profilanswer
 

encore une fois :
 

Code :
  1. Set<pair<V, V2> > result;
  2. typename set<V>::const_iterator iOuter;
  3. typename set<V2>::const_iterator iInner;


 
et c'est PAS un bouquin serieux si il te fait ecrire des fonctions friends ...

n°1708475
hurang
Posté le 27-03-2008 à 00:24:16  profilanswer
 

Salut Joel,
 
merci pour ta réponse.  
Je persiste à dire que ce bouquin est sérieux, c'est autant un bouquin de finance qu'un bouquin de C++ et c'est une bonne référence dans ce domaine. Les classes importées depuis le CD n'ont sûrement pas été rédigées par l'auteur du bouquin et pour ce qui me concerne je n'ai pas besoin d'écrire des fonctions friends.
Par contre je veux bien te croire si tu dis que c'est nul et qu'il ne faut pas les utiliser. Pas trop le choix pour ma part, je n'ai pas le temps de réécrire ces classes.
 
As-tu une réponse à la première partie de ma question ?
Où dois-je placer ce fichu <> ?
 
Merci beaucoup pour ton aide, à bientôt.
 
Jean.

n°1708506
Joel F
Real men use unique_ptr
Posté le 27-03-2008 à 08:07:22  profilanswer
 

de tête, c'ets loin les friends pr moi.
 

Code :
  1. friend Set<V> SymmetricDifference<>(const Set<V>& s1, const Set<V>& s2);


 
Cette syntaxe indique au compilo que l'ensemble des paramètres template sont déductibles (non pas des impôts) de la liste d'arguments.
 
Je mets pas en doute la qualité de la partie finance, mais quand je vois des codes comme çà, ca me fait dire que le gars qui a ecrit les sources est un débile fini.


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

  Friend declaration error dans une classe Set

 

Sujets relatifs
AS3 : Animer un clip depuis une classe?[c#]Winform et évennement error ?
[MySQL] Error : 2013 C'est quoi ça ? [Resolu]Diagramme classe, BDD relationnel, formes normales
shadows template parm errordiagramme de classe uml TO bdd relationnel
SQL ERROR [mysql]passer d'une classe a une autre dans un fichier differend??
public declarationClasse dans une classe
Plus de sujets relatifs à : Friend declaration error dans une classe Set


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR