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

  FORUM HardWare.fr
  Programmation
  C++

  friend operator

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

friend operator

n°1973695
Glock 17Pr​o
Posté le 14-03-2010 à 16:42:12  profilanswer
 

Code :
  1. template<typename T> class equal_comparable
  2. {
  3.     bool operator==(T const &a, T const &b) { return  a.equal_to(b); }
  4.     friend bool operator!=(T const &a, T const &b) { return !a.equal_to(b); }
  5. };
  6. class value_type : private equal_comparable<value_type>
  7. {
  8.   int a;
  9.   public:
  10.     bool equal_to(value_type const& rhs) const
  11. {
  12.  return a == rhs.a;
  13. }
  14. };


 
pourquoi est il obligatoire de défnir les operator de classe de base friend ? sans quoi le code ne compile pas


---------------
.
mood
Publicité
Posté le 14-03-2010 à 16:42:12  profilanswer
 

n°1973703
Joel F
Real men use unique_ptr
Posté le 14-03-2010 à 17:53:09  profilanswer
 

la questione st, encore, pourquoi mettre ces operateurs symmetriques dnas la calsse et non en fonction libre :o

n°1973707
Un Program​meur
Posté le 14-03-2010 à 19:02:06  profilanswer
 

C'est pour ça que friend est nécessaire, parce que ça change un membre en fonction libre et que bien que la déclaration soit dans la classe il utilise le prototype nécessaire en fonction libre.  Sortir de la classe rendrait aussi la définition valable.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1973753
Joel F
Real men use unique_ptr
Posté le 14-03-2010 à 21:23:04  profilanswer
 

je réitére ma question. Quel interet d'avoir operator== dans la classe au depart ?
 
Le code du PO est une JAVAterie qui, en C++, se regle via un concept.

n°1973756
Glock 17Pr​o
Posté le 14-03-2010 à 21:41:50  profilanswer
 

Joel F a écrit :

je réitére ma question. Quel interet d'avoir operator== dans la classe au depart ?
 .


j'en vois pas a priori


---------------
.
n°1973757
Joel F
Real men use unique_ptr
Posté le 14-03-2010 à 21:46:35  profilanswer
 

donc on fait pas :o

n°1973764
Glock 17Pr​o
Posté le 14-03-2010 à 22:34:07  profilanswer
 

le fait de mettre friend ça mets l'operator == dans le scope global ou pas ? c'est ce qu'à voulu dire le programmeur ?
si non, on peut peut être trouver des cas ou l'on ne souhaite pas pouvoir comparer deux types de type T autrement qu'avec equal_to


Message édité par Glock 17Pro le 14-03-2010 à 22:42:23

---------------
.
n°1973802
Un Program​meur
Posté le 15-03-2010 à 07:52:09  profilanswer
 

[quotemsg=1973764,7,732710]le fait de mettre friend ça mets l'operator == dans le scope global ou pas ?[quotemsg]
 
Oui.  (Avec quelques petites particularités sur la recherche des noms, mais passons).


---------------
The truth is rarely pure and never simple (Oscar Wilde)

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

  friend operator

 

Sujets relatifs
[cpp] conception sans friendClass Template + Friend
chainage d'appel surcharge operatorsyntaxe : operator T&() const;
[Résolu] warning friend declaration[Résolu]pb compilation operator ++
operator&operator << (std::ostream& O, const A& a)
template de déclaration d'un copy-constructeur en friend (combo \o/)operator = et const
Plus de sujets relatifs à : friend operator


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