surcharge de l'opérateur [][] - C++ - Programmation
Marsh Posté le 06-02-2008 à 07:23:47
salut !
j'avoue ne pas bien comprendre ton problème. Ou pourquoi ta deuxième méthode avec l'opérateur [] retournant un pointeur ne te conviens pas...
Il est a noter que l'opérateur [][] en lui-même n'existe pas. Si tu veux implémenter quelque chose qui s'y apparente il faut passer par l'utilisation de classe proxy. L'idée c'est que tu implémente un opérateur [] qui retourne une autre classe (par exemple Ligne). Et pour cette classe tu réinplémente l'opérateur [].
Ainsi quand tu fera inst[2][4], inst[2] retournera la 3e instance de Ligne et sur cette instance s'appliquera l'opérateur[4]
j'espère avoir été clair
Mais toujours est-il va te renseigner du côté des classe proxy. Je pense que tu y trouvera ton bonheur
Marsh Posté le 06-02-2008 à 09:12:47
un proxy ouais , même si la solution avec l'opérateur qui renvoit T* estr en général suffisante.
Sinon tu surcharge operator() avec 2 paramétres et voila
Marsh Posté le 06-02-2008 à 14:58:16
Ah merci, c'est déjà pas mal plus clair... Comme j'ai vraiment pas le temps, je vais implémenter cela avec une fonction get(i,j), ca marche aussi bien et puis ca ira plus vite à mettre en place !
Ce fut éducatif, merci beaucoup
Marsh Posté le 06-02-2008 à 01:53:47
Apres avoir codé une multiplication matricielle (algorithme de strassen), je recommence en c++ et cherche à implémenter l'opérateur [][] (tableau à 2 dimansions)
Or, lorsque je déclare l'opérateur comme suit :
Donc je ne sais pas bien comment implémenter cet opérateur. J'ai implémenté l'opératuer [] simple, qui renvoie un pointeur sur un entier
Mais cela ne me suffit pas, je souhaite acceder a un tableau en deux dimensions (à moins que quelque chose de GROS ne m'échappe, ce dont j'ai un peu le sentiment).
Svp, mes cours de c++ sont un peu lointains et mes recherches google infructueuses (suppression automatique des caracteres [ meme avec les doubles quotes..."
Merci !
---------------
Un blog qu'il est bien