CLASSE DE VECTEUR

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 8 avril 2004 à 16:44
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008 - 11 avril 2004 à 21:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21763-classe-de-vecteur

cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
11 avril 2004 à 21:49
Aussi pr la multiplication, tu peux tt à fait utiliser l'opérateur * pour un scalaire et pour un vecteur: c'est une surcharge tt à fait classique. Après, pour le produit vectoriel qui retourne un scalaire tu peux utiliser un autre opéro comme ^ par exemple, c'est une bonne idée, puisque tu ne peux pas surcharger la valeur de retour si les arguments de la fonction sont les mêmes.
surfeurnet Messages postés 68 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 17 août 2005
11 avril 2004 à 20:56
ah ok le transmettre par adresse ! t'as raison c'est vrai que sa peut être lourd comme struture.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
10 avril 2004 à 18:00
Ben, la valeur de retour des tes surcharges d'opérateurs, je te suggère de remplacer l'actuel "vecteur" par "vecteru&". Cela ne demande aucune modification du code, mais au lieu de renvoyer un objet complet (avec ttes ses propriétés etc...) la fonction renverra une adresse mémoire vers le nouvel objet. De cette manière, tu évites de surcharger la pile du programme avec plein de données: il n'y a que l'équivalent d'un int (4 octets sur une architecture 32 bits, peu importe) qui est stocké.
surfeurnet Messages postés 68 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 17 août 2005
10 avril 2004 à 16:36
peut tu m'expliquer plus en détail stp ? merci.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
9 avril 2004 à 23:15
tes opéros devraient renvoyer une référence (Vecteur&), ça épargenra de la place ds la pile ;-)
surfeurnet Messages postés 68 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 17 août 2005
9 avril 2004 à 15:40
ouai j'en vais m'y mettre. merci.
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
8 avril 2004 à 19:35
tu devrai rendre ta classe canonique, en rajoutant l'operateur = pour securiser tout ca

et tant que tu y est rajoute aussi les operateur de comparaison == et != qui sont facile a definire
aussi peut etre += -= *= /=

bonne chance
surfeurnet Messages postés 68 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 17 août 2005
8 avril 2004 à 17:24
ok, merci
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
8 avril 2004 à 16:44
si j'ai bien compris, la classe Vecteur renfer un tableau de n valeurs de type double.

dans le cas, il faut déclarer ligne comme ceci :
double *ligne;

dans le constructeur faire :
ligne = new double[n];

dans le destructeur:
delete[] ligne;

de plus évite d'avoir le même nom pour un typedef et une variable:
typedef double *ligne;
ligne *ligne;

ça n'aide en rien an la compréhension
Rejoignez-nous