Bonjour,
comment d�finir les op�rateur [] et <<, >> (les cheverons) en C++? De mani�re g�n�rale.
Merci par avance.
Bonjour,
comment d�finir les op�rateur [] et <<, >> (les cheverons) en C++? De mani�re g�n�rale.
Merci par avance.
Bonjour.
Tu trouveras la liste des op�rateurs et leurs d�clarations dans cette page.
Bonjour
De mani�re g�n�rale ont red�fini les op�rateurs en fonction de ses objectifs ou besoins. Si c'est pour red�finir un op�rateur de d�calage � gauche pour effectuer un d�calage � gauche cela n'a aucun int�r�t, mais en revanche si c'est pour rediriger un flux alors cela peut �tre une raison pour red�finir l'op�rateur. D'un autre cotez, vous �tes sur un tr�s bon site alors pourquoi ne pas faire quelque petite recherche et eur�ka lire ceci ?
� bient�t
Bonjour,
alors voil�, j'ai une classe de vecteur que l'on nommera A, et je souhaite d�finir des surcharges d'op�rateurs pour: +, *, et l'op�rateur d'affectation =.
Voici ce que j'ai trouv�.
pour l'op�rateur * (qui est la multiplication d'un scalaire par un vecteur, � gauche.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 //Déclaration et définition de l'opérateur + A operator + (const A & v) const { A b(n); assert(n==v.n); for(int i=0;i<n;i++) b[i]=v[i]+w[i]; return b; }
pour l'op�rateur d'affectation =
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 //Déclaration est définition de l'opérateur * A operator * (double &v) const { vecteur b(n); for(int i=0;i<n;i++) b[i]=w[i]*v; return b; }
Ma question est: pour retenir toutes ces d�finition, il faut que je puisse comprendre leurs logiques, et �a je n'y arrive pas.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 //Déclaration et définition de l'opérateur d'affectation A& operator = (const A &v) { assert(n==v.n); for(int i=0;i<n;i++) w[i]=w[i]+v.w[i]; return *this; }
1- pour l'op�rateur +: on apprend au compilateur comment aditionner deux vecteurs, composante par composante: comment est-ce qu'il va savoir qui est w[i]? et comment est ce qu'on dispose les const et les &?
2- pour l'op�rateur *; on veut dire par double que c'est un scalaire. Par contre, je ne cherche pas � faire un produit scalaire, mais multiplier un scalaire par un vecteur. Comment il va faire �a?
3- pour l'op�rateur d'affectation, en fait qu'est ce qu'on doit lui exepliquer? comment disposer les & et const? et que signifi *this? (j'ai lu que ca veut dire qu'il demande � retournerl'objet), mais pourquoi *? et pourquoi pas return w?
Je vous remercie par avance.
@hinaneee tu spam un nombre "consid�rable" de sujet sur ce forum et sur d'autres forums d'entre-aides.
Et � chaque fois, c'est la m�me chose, on te dit de reprendre les bases.
Tu ne t'en sortiras pas sans une tr�s s�rieuse r�vision des bases du C++.
On te l'a dit plusieurs fois, et c'est vraiment s�rieux, r�vises.
A ta d�charge, la r�f�rence que tu utilises est bien pourrie et te fait prendre de bien mauvais r�flexes, comme ces putains d'assert qui n'ont rien � faire dans une classe qui devrait �tre template, de base.
je suis entrain d'essayer de comprendre pourquoi on les d�finit de la sorte pour pouvoir les m�moriser car j'oublie � chaque fois. Je cherche une explication logique, je ne demande pas � ce qu'on �crive mon programme, je veux juste qu'on m'explique. Voil�, si quelqu'un peut m'expliquer comment on d�finit de mani�re simple et logique ces op�rateurs pour des vecteurs, et me montrer des �critures plus modernes, je le remercie par avance.
- le spam est tr�s mal vu
- tes questions sont en de�� des bases, on apprend � marcher avant de vouloir courir
- on t'a d�j� r�pondu un nombre incalculable de fois sur un de tes trop nombreux sujets
- sais-tu ce qu'est un operator ? ou bien c'est juste un mot-cl� que tu balances ?
- sais-tu ce qu'est un vecteur comme tu l'entends ? ou bien tu ne sais pas non plus l'objet math�matique ?
- o� est la difficult� � multiplier par X tous les �l�ments d'un tableau ?
- ou bien tu ne sais m�me pas cr�er ledit tableau ?
- ou alors c'est son parcours le probl�me ?
- class A : public std::valarray {};;
![]()
Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation r�seau ?
Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.
Partager