OVH Cloud OVH Cloud

Création d'une classe de matrice -> opérateur [][]

19 réponses
Avatar
TigrouMeow
Hello ;)

Je pose décidément beaucoup de questions en ce moment... j'en ai aujourd'hui
une plus interressante je suppose :)

Voilà, j'aimerais programmer une classe de gestion de matrice. A priori ça
n'existe pas dans la std ni la stl. Le problème qui se pose à moi c'est que
j'aimerais utiliser l'opérateur [][] sur ma classe.

Exemple :
a = matrix[x][y];

Si possible, j'aimerais qu'on puisse faire aussi un matrix[x][y] = a, je
sais qu'en C# on utilise les opérateurs get et set pour faire cela, mais en
C++ je vois pas. Voilà deux questions en une ! Je vous remercie une fois de
plus pour l'aide que vous pourrez m'apporter... :)

--
TigrouMeow :)
================================
Le site des fournisseurs d'accès :
http://www.fai-fr.com
================================

9 réponses

1 2
Avatar
Andre Heinen
On Wed, 13 Oct 2004 14:16:48 +0200, "Boris Sargos"
wrote:

Pourquoi pas une bonne idée ?
Ca dépend comment c'est implémenté derrière !
Effectivement le cas du tableau de tableaux n'est pas efficace.


Le point de vue de la FAQ n'est pas (seulement) la rapidité, mais
la simplicité de l'implémentation, et la facilité avec laquelle
on peut en changer.

Ceci dit, je ne suis pas expert en matrices, et je me garderai
bien de prendre position. J'ai juste voulu signaler à TigrouMeow
que son idée n'était *peut-être* pas la bonne, et lui conseiller
d'aller lire la FAQ avant de se mettre au travail. Un homme
averti en vaut deux...

--
Andre Heinen
My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz

Avatar
Boris Sargos
Je ne suis pas un expert non plus. Mais j'ai justement passé beaucoup de
temps sur le net avant de trouver une méthode convaincante. Je ne dis pas
que celle de Stroustrup est la meilleure (de quel droit pourrais-je juger ?)
et tu as eu raison de lui faire partager ce lien.
A+
Avatar
Fabien LE LEZ
On 13 Oct 2004 02:10:50 -0700, :

Tu sais mieux que ça, j'espère:-). On ne renvoie pas une référence à un
temporaire.


Yep... je devrais pas poster du code non testé après 1 h du matin :-/


--
;-)

Avatar
TigrouMeow
"Boris Sargos" a écrit dans le message de news:
416d1b7f$0$27874$
Salut,

après toutes les réponses que tu as eues, je n'ai pas grand chose à
ajouter.
Cela dit, je te conseille de jeter un oeil sur le bouquin de Stroustrup.
Il
donne de bonnes bases pour construire une classe Matrice. Sa méthode
repose
sur l'utilisation d'un proxy qui est en l'ocurrence de type valarray. Tu
pourras trouver sur internet le code source de la classe Slice_iter.
Le code que Stroustrup fournit n'est pas simple, mais riche en
enseignements, et te donnera de bonnes pistes pour ce que tu veux faire.


Je vous remercie à tous ;)
J'ai beaucoup d'informations maintenant, l'utilisation de parenthèses ne me
dérange pas vraiment sauf d'un point de vue "logique" je dirais... mais
c'est tellement plus simple à implémenter ! Je vais quand même essayer de
coder un [][] qui fonctionne et je verrai ensuite :)

Avatar
kanze
Fabien LE LEZ wrote in message
news:...
On 13 Oct 2004 02:10:50 -0700, :

Tu sais mieux que ça, j'espère:-). On ne renvoie pas une référence à
un temporaire.


Yep... je devrais pas poster du code non testé après 1 h du matin :-/


Sauf que même en le testant, il se peut qu'il marche. En ce qui concerne
le comportement indéfini, rien ne vaut une bonne révue de code.

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Fabien LE LEZ
On 13 Oct 2004 23:35:37 -0700, :

En ce qui concerne
le comportement indéfini, rien ne vaut une bonne révue de code.


Je te rassure : quand je fais du code de production, je me relis ;-)


--
;-)

Avatar
James Kanze
Fabien LE LEZ writes:

|> On 13 Oct 2004 23:35:37 -0700, :

|> >En ce qui concerne
|> >le comportement indéfini, rien ne vaut une bonne révue de code.

|> Je te rassure : quand je fais du code de production, je me relis ;-)

J'espère que d'autres te rélisent aussi. Parce que si tu es comme moi,
quand tu lis ton propre code, tu vois ce que tu voulais écrire, et non
ce que tu as écrit réelement.

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Avatar
Gabriel Dos Reis
James Kanze writes:

| Fabien LE LEZ writes:
|
| |> On 13 Oct 2004 23:35:37 -0700, :
|
| |> >En ce qui concerne
| |> >le comportement indéfini, rien ne vaut une bonne révue de code.
|
| |> Je te rassure : quand je fais du code de production, je me relis ;-)
|
| J'espère que d'autres te rélisent aussi. Parce que si tu es comme moi,
| quand tu lis ton propre code, tu vois ce que tu voulais écrire, et non
| ce que tu as écrit réelement.

Gaby jouant Fabien:

Je te rassure; d'autres le relisent aussi.

On attend la réplique de James.

-- Gaby
Avatar
James Kanze
Gabriel Dos Reis writes:

|> James Kanze writes:

|> | Fabien LE LEZ writes:

|> | |> On 13 Oct 2004 23:35:37 -0700, :

|> | |> >En ce qui concerne le comportement indéfini, rien ne vaut une
|> | |> >bonne révue de code.

|> | |> Je te rassure : quand je fais du code de production, je me
|> | |> relis ;-)

|> | J'espère que d'autres te rélisent aussi. Parce que si tu es comme
|> | moi, quand tu lis ton propre code, tu vois ce que tu voulais
|> | écrire, et non ce que tu as écrit réelement.

|> Gaby jouant Fabien:

|> Je te rassure; d'autres le relisent aussi.

|> On attend la réplique de James.

James jouant James :

C'est bien. C'est ce qu'il faut faire.

Mais évidemment, ça ne te décharge pas de la nécessité de le faire
passer des tests (unité et d'integration).

:-)

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
1 2