Surcharge d'operateur en C++

Bon voila la question con du vendredi

Alors je fais du bug tracking donc pour cela j’implement un template de  array…

en gros c’est comme class[] sauf que je fais d’un bound checking …

Vous me suivez c’est bien

Maintenant je voudrais faire comme avec un [] en surchargeant operator[].

C’est a dire :

montruc[0] = montruc[1];

Est ce que c’est possible ? Je crois mais j’ai pas envie de me taper le bouquain de ref’ j’ai pas trop le temps

template class Sarray

 const T operator[](int r) const; pour recuperer un value mais pour stocker ?

Merci d’avance,
Koubiiak

A vue de nez, tu pourrais renvoyer une référence non const sur ton i-ème élément, ce qui permettrait de le modifier:

T& operator[](int r);

Remarque à la con, aussi: tu pourrais peut-être remplacer le “int r” par un “unsigned int r”, ce qui est un peu plus safe et pratique pour le boundary check, à moins que tu veuilles autoriser des offsets négatifs…

Hop ! Tant qu’a faire
http://msdn.microsoft.com/library/en-us/vc…ubscripting.asp

Ok c’est ce que je fesais et j’avais changé le signé en non signé

Maintenant j’ai une grosse merde dans le linkage avec ma classe template bonheur quant tu nous tiens …

Koubiak

Ta classe template doit être décrite intégralement dans ton .h aucun compilateur ne compile les templates…

Pour l’index j’utiliserais plutôt un “size_t”.