bonjour,
Ce n'est pas dans la faq et la recherche par mot clef se fiche des { } donc je pose (ou sans doute repose )la question :
Comment surcharge-t-on operator{}?
Merci d'avance.
Version imprimable
bonjour,
Ce n'est pas dans la faq et la recherche par mot clef se fiche des { } donc je pose (ou sans doute repose )la question :
Comment surcharge-t-on operator{}?
Merci d'avance.
{} n'est pas un op�rateur, donc on ne peut pas le surcharger. On peut par contre surcharger [] et (). Pour quelle raison voudrais-tu surcharger {} ?
C'est vrai que ce n'est pas possible a l'heure actuelle. Il faudrait peut etre le proposer pour la prochaine norme, tout comme on a bien propos� de surcharger l'op�rateur ' ' (espace):
http://www.research.att.com/~bs/whitespace98.pdf
:D
ah...
Je pensais l'avoir vu une fois.
On s'en sert quand on veut remplir un tableau a la main mais avec des valeurs connues :
Comment c'est code alors?Code:
1
2 int *tab={1,2,3,7};
PS : j'ai pas d'accent sur ce clavier
On l'utilise bien pour cela (entre autres), mais �a n'a rien d'un op�rateur.
Les accolades sont des d�limiteurs.
Elles peuvent d�limiter des structures de donn�es, des blocs de code ou des tableaux (lors de l'initialisation d'une variable).
Il sera possible dans la prochaine norme (C++0x) d'utiliser des listes d'initialisation pour les types d�finis par l'utilisateur. Ainsi, il sera (enfin !) possible d'�crire
par exemple, mais ce n'est pas le cas pour le moment.Code:vector<int> vec = {1, 2, 3, 4};
Donc c'est faisable uniquement s'il s'agit de structure et pas de classe... du fait du rangement brut (C). C'est pour ca qu'on peut le faire sur des int, des char* et les types de base mais pas le reste. OK.
Bon bah vivement la prochaine norme:lol:
Elle a l'air vraiment sympa cette nouvelle norme. Je n'ai aps lu toutes les propositions en d�tail mais �a a l'air vraiment bien (�a, les rvalues r�f�rences, tout ce qui concerne boost...). Vivement qu'elle soit dispo :p.Citation:
Envoy� par stillman
Personnellement, je trouve que l'am�lioration la plus importante est l'introduction des concepts...mais ceci n'est pas le sujet pour en discuter :ccool: ! -> Avenir du C++
Il y a une astuce, presqu'un hack, utilis� par certain pour ce genre d'initialisation, qui consiste � �crire un truc genre :Citation:
Envoy� par DEVfan
maClasse = 1, 2, 3, 4, 5, 6;
Mais il ne se base pas sur la surcharge des {} (qui n'est pas possible, et d'ailleurs, il n'y en a pas) mais sur la surcharge de l'op�rateur = et de l'op�rateur ,
Ca se surcharge comment d'ailleurs l'op�rateur , ?
Comme tous les autres. On trouve un exemple l�.Citation:
Envoy� par Bakura
(edit : suppression d'une erreur concernant le nombre de param�tres).
Ce serait pas plut�t 2 ?Citation:
Envoy� par roulious
Si, faudrais que je me relise plus avant de poster. Hop, j'�dite :)Citation:
Envoy� par Laurent Gomila
Merci :).
A noter n�anmoins que cette proposition ne permet de faire ceci que d'une mani�re relativement peu performante.Citation:
Envoy� par stillman
pas mal le coup de l'operator, ...je vais essayer:king: