pkoi je peux pas faire x* operator+(x*,x*) ?

pkoi je peux pas faire x* operator+(x*,x*) ? - C++ - Programmation

Marsh Posté le 18-12-2002 à 20:17:09    

Pourquoi operator+ peut pas prendre des pointeurs en parametre ?
le operator+ avec un seul parametre le peut lui par contre.
Y a pas moyen ?

Reply

Marsh Posté le 18-12-2002 à 20:17:09   

Reply

Marsh Posté le 18-12-2002 à 21:10:57    

Peut etre parceque l'operateur + est deja defini sur tous les pointeurs existants, sauf sur les pointeurs de fonctions :)

Reply

Marsh Posté le 18-12-2002 à 21:23:52    

Kristoph a écrit :

Peut etre parceque l'operateur + est deja defini sur tous les pointeurs existants, sauf sur les pointeurs de fonctions :)


 
mouais. C dommage.
Je veux bien admettre que c'est inutile et stupide d'additioner deux pointeurs de la même façon qu'on additionerai un pointeur et nombre. p++ par exemple. Mais par contre on devrait pouvoir surdefinir quand même avec nos propres modalités. Je trouve que ça enleve quand même un superbe possiblité, juste parceque on pourrait croire que on veut additioner deux pointeurs. Mais si c'est pas possible je vois pas pkoi ils bloquent une telle surcharge.  :o

Reply

Marsh Posté le 18-12-2002 à 22:49:55    

Je trouve quand même ton operateur + douteux si tu veux mon avis. Juste pour rigoler, dis nous ce que tu voulais faire avec ;)

Reply

Marsh Posté le 18-12-2002 à 22:57:39    

karim63 a écrit :

Pourquoi operator+ peut pas prendre des pointeurs en parametre ?
le operator+ avec un seul parametre le peut lui par contre.
Y a pas moyen ?


 
d'un point de vue C++, ça veux pas dire grand chose, par contre tu peux passer des objets par référence, ce qui revients au même...

Reply

Marsh Posté le 19-12-2002 à 00:09:31    

bjone a écrit :


 
d'un point de vue C++, ça veux pas dire grand chose, par contre tu peux passer des objets par référence, ce qui revients au même...


 
bah nan pas trop.
 
En fait ce qui m'interresse c'est surtout de renvoyer un pointeur sur objet faute de mieux. Y a un topic de moi pas loin sur cast hierarchie etc.
Le projet que j'ai a faire est moitié chaud.
G pas de scanner donc peut pas vous montrer.
 
En effet sur une hierachie d'objet, si je fait une fonction qui renvoit le type le plus grand celui qui englobe tout, et bien comme c'est pas des pointeurs, il me cast mon objet dans la classe de base.
Enfin on a discuté avec nraynaud, mais bon moi je debute en c++ et les histoires de contrat et tout ça ça me passe un peu au dessus, vu que c++ parait quand même un lagage assez bidouille d'un point de vu novice.

Reply

Marsh Posté le 19-12-2002 à 06:36:20    

Les concepteurs du C++ ont décidé que pour surcharger un opérateur, il faut au moins un des arguments de type utilisateur.
Or, un pointeur est un type intégré, fut-il sur un type utilisateur.
 
La raison est de ne pas permettre de dévoyer la sémantique du langage pour ses types intégrés.
Ça se comprends, mais du coup ça interdit de récupérer pour son compte les opérations non-valides en C++.
Moi aussi ça m'a gêné quand j'ai voulu légaliser l'affectation de tableaux. Niet !
On ne peut même pas jouer sur la conversion de types intégrés en types utilisateur par constructeur implicite. :(


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 19-12-2002 à 11:56:31    

Musaran a écrit :

Les concepteurs du C++ ont décidé que pour surcharger un opérateur, il faut au moins un des arguments de type utilisateur.
Or, un pointeur est un type intégré, fut-il sur un type utilisateur.
 
La raison est de ne pas permettre de dévoyer la sémantique du langage pour ses types intégrés.
Ça se comprends, mais du coup ça interdit de récupérer pour son compte les opérations non-valides en C++.
Moi aussi ça m'a gêné quand j'ai voulu légaliser l'affectation de tableaux. Niet !
On ne peut même pas jouer sur la conversion de types intégrés en types utilisateur par constructeur implicite. :(


 
Les sources du cumpilateur sont en C ?
Elles sont où ?  :whistle:  
 :lol:  ;)

Reply

Marsh Posté le 20-12-2002 à 00:15:34    

Je comprends pas ta remarque/blague.
 
Pour surcharger operator+(T,U), il faut que l'un au moins des types T/U soient de ta création.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 20-12-2002 à 00:35:46    

Musaran a écrit :

Je comprends pas ta remarque/blague.
 
Pour surcharger operator+(T,U), il faut que l'un au moins des types T/U soient de ta création.


 
oui mais pas deux pointeurs sur des types.

Reply

Marsh Posté le 20-12-2002 à 00:35:46   

Reply

Marsh Posté le 04-01-2003 à 00:51:19    

puisque + ne le permet pas
passer par une methode externe style "add(const entier*, const entier *)" ca mecontenterait tout le monde?
 
je le fais pour les vecteurs
(cross product et tout ca)
 
Bien entendu pour additionner deux entiers c'est
un peu bete mais je crois meme pas que ce soit
possible en java ou en caml de surcharger les operateurs.
 
LeGreg


Message édité par LeGreg le 04-01-2003 à 01:17:04

---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 05-01-2003 à 12:47:13    

legreg a écrit :

ca mecontenterait tout le monde?


 
benh ça correspondrait pas a l'énnoncé surtout  :D

Reply

Marsh Posté le 05-01-2003 à 22:45:09    

legreg a écrit :

puisque + ne le permet pas
passer par une methode externe style "add(const entier*, const entier *)" ca mecontenterait tout le monde?
 
je le fais pour les vecteurs
(cross product et tout ca)
 
Bien entendu pour additionner deux entiers c'est
un peu bete mais je crois meme pas que ce soit
possible en java ou en caml de surcharger les operateurs.
 
LeGreg


 
java c'est pas possible (trop le bordel dans les programmes, cf. C++)
caml c'est en discution et ça bataille ferme, des problèmes à la con peuvent survenir (http://www.mail-archive.com/haskell@haskell.org/msg01261.html pour un exemple de problème en haskell)

Reply

Marsh Posté le 06-01-2003 à 07:46:27    

C++ a le courage d'affronter les problèmes (provoc) :ange:.
 
Les opérateurs utilisateurs, c'est pour quand ?


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed