Bonjour!
J'ai surchargé l'opérateur [] pour l'utiliser avec une classe personnelle qui contient un tableau.
Suivant le contenu de ma classe, j'aimerai que l'opérateur retourne un tableau de plusieurs valeurs, et dans certain cas une seule valeur (ou un tableau à une entrée, peu m'importe). J'ai compris que déclarer float* MaClasse::operator[] permettait de faire cela... Mais:
En plus de cela, j'aimerai pouvoir utiliser l'expression contenant l'opérateur à droite comme à gauche du égal. Cette partie là je n'ai aucun problème à le faire lorsqu'il s'agit d'une valeur (un float par exemple: float& MaClasse::operator[]), mais je n'y arrive pas avec un tableau de valeurs comme énoncé plus haut. En effet j'ai essayer float*& MaClasse::operator[], mais cela ne fonctionne pas.
Exemple
A l'heure actuelle, j'arrive à me débrouiller avec deux méthodes distinctes (Set... et Get...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 MaClasse test(); float* a; a = test[2]; // copie dans a les 2 premiers éléments du tableau contenu dans test float* b = new float[3]; b[0] = (float)(rand() % 100); b[1] = (float)(rand() % 100); b[2] = (float)(rand() % 100); test[3] = b; // copie les valeurs de b dans les 3 premiers éléments du tableau contenu dans test
Mais à l'utilisation il serait plus simple d'avoir un opérateur pour faire les deux.
Quelqu'un saurait il m'aider?!
Merci!
Partager