[C++]petite question sur l'opérateur de conversion de classe

petite question sur l'opérateur de conversion de classe [C++] - C++ - Programmation

Marsh Posté le 05-06-2007 à 15:59:11    

Hello,
 
je voudrais surcharger l'opérateur de conversion implicite d'une classe et je ne me souviens plus quelle est sa syntaxe et je n'arrive pas à le trouver sur le web :(
 
En gros je voudrais faire ça :

Code :
  1. class C
  2. {
  3.    int a, b;
  4.    char c;
  5.    operator () // je ne sais plus ce qu'il faut mettre
  6. };
  7. C c1;
  8. int x = c1; // l'opérateur de conversion implicite vers int est appelé


 
Je ne suis pas 100% sûr que c'est possible vu que je ne l'ai jamais utilisé mais il me semble bien m'en souvenir.
 
Merci ! :)

Reply

Marsh Posté le 05-06-2007 à 15:59:11   

Reply

Marsh Posté le 05-06-2007 à 16:13:47    

Salut,
 
C'est "operator int()".

Reply

Marsh Posté le 05-06-2007 à 17:21:45    

J'ai souvent vu que c'était dangeureux si mal contrôlé, et j'ai déjà eu l'occasion de faire face à de telles menaces, tout comme ne pas spécifier les constructeurs explicites. Quand pensent les pros du forum?

Reply

Marsh Posté le 05-06-2007 à 17:29:06    

ElDesdichado a écrit :

Quand pensent les pros du forum?


Ca dépend des jours.


---------------
Töp of the plöp
Reply

Marsh Posté le 05-06-2007 à 17:39:37    

ca dépend de la sémantique de la chose. En gros, si ca sert à rien, vaut mieux l'evité.

Reply

Marsh Posté le 07-06-2007 à 00:26:02    

ElDesdichado a écrit :

J'ai souvent vu que c'était dangeureux si mal contrôlé, et j'ai déjà eu l'occasion de faire face à de telles menaces, tout comme ne pas spécifier les constructeurs explicites.


Les constructeurs qui peuvent prendre un paramètre, je préfère les déclarer explicit. Pour les operateur de conversions, je les utilise rarement en dehors de classes proxy -- qui elles même sont la plupart du temps des classes imbriquées qui ne sont pas accessibles publiquement. Afin de pouvoir contrôler qui utilise ce proxy, seuls les membres de la classe directement englobante peuvent y accéder en principe.

Reply

Marsh Posté le 07-06-2007 à 11:19:31    

En gros il y a une sorte de consensus.

Reply

Sujets relatifs:

Leave a Replay

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