operator&

operator& - C++ - Programmation

Marsh Posté le 20-04-2009 à 03:31:04    

Salut,

 
Code :
  1. class nonadd {
  2.   void operator&() const;
  3. };
  4. void f() {
  5.   nonadd n;
  6.   // nonaddressable* np = &n;
  7. }
 

habituellement c'est obj.operator =(); par exemple, sauf qu'ici l'operator précède l'objet, comment le compilateur sait que l'on fait appel à l'operator & de l'objet ?


Message édité par Glock 17Pro le 20-04-2009 à 03:31:21
Reply

Marsh Posté le 20-04-2009 à 03:31:04   

Reply

Marsh Posté le 20-04-2009 à 09:28:56    

Ta question n'a aucun sens. Je vois pas ce qui te chagrine.
n est de type nonadd et nonadd défini un operateur&, il n'y a ni ambiguité ni non-définition; Le compilo essaye donc d'accéder au dit opérateur qui manque de bol est privé, empechant l'appel.

Reply

Marsh Posté le 20-04-2009 à 13:50:11    

le sens que j'ai voulu donner était le suivant :
 
normalement quand on surcharge un opérateur, l'operateur vient aprés (à droite) d'un objet
 
A a; //à = de surcharger
A b;
a=b // a.operator =(b) , = est bien une fonction de a
 
&a // operator &(), le sens est inversé l'opérateur est à gauche de l'objet
 

Reply

Marsh Posté le 20-04-2009 à 14:59:42    

bah ca depend de l'operateur hein :o
 
!a , ~a, -a &a ...

Reply

Marsh Posté le 20-04-2009 à 15:02:14    

lol ah oui exact oops

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed