Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1504 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  surcharge de l'operateur []

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

surcharge de l'operateur []

n°1008200
tellier
Posté le 10-03-2005 à 14:10:56  profilanswer
 

Voila jai une classe vecteur:
 

Code :
  1. class vecteur
  2. {
  3.   int taille;
  4.   float *tab;
  5.   public:
  6.     vecteur();
  7.     vecteur(int);
  8.     vecteur(vecteur& );
  9. }


 
il faut que je surcharge l'operateur [] pour pouvoir acceder aux elements: v[0]=2, v[1]=0, ...
 
jai penser a cela:

Code :
  1. float& operator[](int);
  2. float& vecteur::operator[](int e)
  3. {
  4.   return tab[i];
  5. }


 
mais celà ne fonctionne pas. je crois que je suis un peu perdu
donc si qqn pouvait m'aider ca serait sympa.
 
merci

mood
Publicité
Posté le 10-03-2005 à 14:10:56  profilanswer
 

n°1008221
IrmatDen
Posté le 10-03-2005 à 14:18:33  profilanswer
 

C'est à dire "ca marche pas" ?
 

Citation :

float& vecteur::operator[](int e)
{
  return tab[i];
}


 
int e, tab[i]... C'est une faute de frappe ?
Sinon par précaution tu devrais vérifier que e (ou i :) ) est bien inférieur a vecteur::taille.

n°1008227
chrisbk
-
Posté le 10-03-2005 à 14:19:29  profilanswer
 

et aussi supérieur à 0 ...

n°1008229
Taz
bisounours-codeur
Posté le 10-03-2005 à 14:20:49  profilanswer
 

ou est le destructeur ? ou est l'operator= ? vecteur(vecteur& ); est incorrect

n°1008244
tellier
Posté le 10-03-2005 à 14:26:44  profilanswer
 

Taz a écrit :

ou est le destructeur ? ou est l'operator= ? vecteur(vecteur& ); est incorrect


 
comment ca incorrect?
 
le desctructeur j'ai fais ca:

Code :
  1. ~vecteur();
  2. ~vecteur()
  3. {
  4.   delete[] tab;
  5. }


 
sinon pr les test d'indice j'en ai pa besoin vu ke jai tester a la main avec des indices qui sont valides.


Message édité par tellier le 10-03-2005 à 14:28:35
n°1008245
chrisbk
-
Posté le 10-03-2005 à 14:27:30  profilanswer
 

tellier a écrit :

comment ca incorrect?


 
 
vecteur(const vecteur & )

n°1008253
Taz
bisounours-codeur
Posté le 10-03-2005 à 14:29:05  profilanswer
 

et ton operator= :o

n°1008262
tellier
Posté le 10-03-2005 à 14:31:55  profilanswer
 

pour le constructeur par copie c'est ca et apparement ca pose probleme:
 
 
edit:

Code :
  1. vecteur::vecteur(const vecteur& v)
  2. {
  3.   taille = v.taille;
  4.   tab = new float[taille];
  5.   for(int i=0;i<taille;i++)
  6.   tab[i] = v.tab[i];
  7. }


 
dsl mais sous unix les copier coller cest pas la joie...


Message édité par tellier le 10-03-2005 à 14:34:32
n°1008263
chrisbk
-
Posté le 10-03-2005 à 14:32:57  profilanswer
 

tellier a écrit :

pour le constructeur par copie c'est ca et apparement ca pose probleme:
 

Code :
  1. vecteur::vecteur(int t)
  2. {
  3.   taille = v.taille;
  4.   tab = new float[taille];
  5.   for(int i=0;i<taille;i++)
  6.   tab[i] = v.tab[i];
  7. }



 
tu t'es relu quand t'as bu ?

n°1008265
tellier
Posté le 10-03-2005 à 14:33:07  profilanswer
 

Taz a écrit :

et ton operator= :o


 

Code :
  1. vecteur& vecteur::operator=(int e)
  2. {
  3.     for(int i=0;i<taille;i++)
  4.       tab[i] = e;
  5.     return *this;
  6. }

mood
Publicité
Posté le 10-03-2005 à 14:33:07  profilanswer
 

n°1008299
Taz
bisounours-codeur
Posté le 10-03-2005 à 14:46:52  profilanswer
 

... c'est la faute du copier coller maintenant ... nan mais relis toi bordel :o

n°1008323
tellier
Posté le 10-03-2005 à 14:54:44  profilanswer
 

je dois également réalisé l'opération    v2++
 

Code :
  1. vecteur& vecteur::operator++()
  2. {
  3.   for(int i=0;i<taille;i++)
  4.     tab[i] = tab[i] + 1;
  5.   return *this;
  6. }


 
mais v2 n'est pas changer...

n°1008334
Taz
bisounours-codeur
Posté le 10-03-2005 à 14:59:41  profilanswer
 

c'est quand tu veux pour écrire un operator=

n°1008341
tellier
Posté le 10-03-2005 à 15:02:33  profilanswer
 

pourquoi jai besoin d'un operateur = pour des float?

n°1008346
Taz
bisounours-codeur
Posté le 10-03-2005 à 15:07:37  profilanswer
 

allo, on parle de ta classe vecteur :o

n°1008353
tellier
Posté le 10-03-2005 à 15:10:09  profilanswer
 

Taz a écrit :

et ton operator= :o


 

Code :
  1. vecteur& vecteur::operator=(int e)
  2. {
  3.     for(int i=0;i<taille;i++)
  4.       tab[i] = e;
  5.     return *this;
  6. }


 
 
 
???

n°1008356
Taz
bisounours-codeur
Posté le 10-03-2005 à 15:11:46  profilanswer
 

... je crois que t'as pas bien compris ce qu'est l'affecation toi

n°1008360
tellier
Posté le 10-03-2005 à 15:13:35  profilanswer
 

ben peut etre!
mais jai commencer le c++ aujourd'hui.
 
moi j'ai ce truc a faire, je suis obliger de le taper un pauve unix à la con et en plus t'es agressif comme j'sais pas quoi!
 
je t'oblige pas à répondre, donc si ca te fait chier tu répond pas!

n°1008369
bjone
Insert booze to continue
Posté le 10-03-2005 à 15:17:54  profilanswer
 

il veux un opérateur qui se charge de:
 
vecteur a,b;
 
a=b;
 
et pas:
 
int zog=56;
a=zog;
 

n°1008370
Taz
bisounours-codeur
Posté le 10-03-2005 à 15:18:30  profilanswer
 

c'est quoi le problème avec unix ?
 
 
operator= c'est ce qui intervient quand tu fais
 
x = y
 
genre
 
int i, j;
i = 0;
j = i;
 
fais un peu marcher ta boite a cerveau ...

n°1008461
IrmatDen
Posté le 10-03-2005 à 16:11:36  profilanswer
 

C'est rééllement urgent ton projet ? parce que sinon il y a d'excellent sites pour apprendre le C++, chose que tu devrais faire avant de vouloir surcharger a tout va...

n°1008470
Taz
bisounours-codeur
Posté le 10-03-2005 à 16:15:34  profilanswer
 

le problème c'est pas tellement de surcharger, c'est de réfléchir à ce qu'on veut faire. Si on est capable de visualiser/utiliser les opérateurs qu'on a définit, c'est pas la peine de surcharger quoi que ce soit. Il faut penser en terme d'interface, de service rendu. Je vais surcharger operator= : comment est-ce que l'operator= déjà existant (synthétisé) est-il employé ? Quand ? Comment vais-je me servir de mon operator= ?

n°1008495
IrmatDen
Posté le 10-03-2005 à 16:23:04  profilanswer
 

Bonne explication de la POO :jap:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  surcharge de l'operateur []

 

Sujets relatifs
Surcharge d'operateur et compilationSurcharge graphique d'un Checkbox
[class] Surcharge d'opérateur +[C++] Problème de surcharge d'opérateur
Surcharge d'opérateurSurcharge de l'Opérateur Virgule
Probleme heritage/surcharge d'operateurSurcharge d operateur = et virtual , ca va ensemble ?
surcharge d'operateur quand en faire des fonctions membres/pas membres[c++]surcharge d'operateur
Plus de sujets relatifs à : surcharge de l'operateur []


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR