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

  FORUM HardWare.fr
  Programmation
  C++

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°272372
karim63
Posté le 18-12-2002 à 20:17:09  profilanswer
 

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

mood
Publicité
Posté le 18-12-2002 à 20:17:09  profilanswer
 

n°272400
Kristoph
Posté le 18-12-2002 à 21:10:57  profilanswer
 

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

n°272411
karim63
Posté le 18-12-2002 à 21:23:52  profilanswer
 

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

n°272465
Kristoph
Posté le 18-12-2002 à 22:49:55  profilanswer
 

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

n°272469
bjone
Insert booze to continue
Posté le 18-12-2002 à 22:57:39  profilanswer
 

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...

n°272508
karim63
Posté le 19-12-2002 à 00:09:31  profilanswer
 

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.

n°272545
Musaran
Cerveaulté
Posté le 19-12-2002 à 06:36:20  profilanswer
 

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
n°272698
karim63
Posté le 19-12-2002 à 11:56:31  profilanswer
 

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:  ;)

n°273466
Musaran
Cerveaulté
Posté le 20-12-2002 à 00:15:34  profilanswer
 

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
n°273474
karim63
Posté le 20-12-2002 à 00:35:46  profilanswer
 

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.

mood
Publicité
Posté le 20-12-2002 à 00:35:46  profilanswer
 

n°279006
LeGreg
Posté le 04-01-2003 à 00:51:19  profilanswer
 

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
n°279551
karim63
Posté le 05-01-2003 à 12:47:13  profilanswer
 

legreg a écrit :

ca mecontenterait tout le monde?


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

n°279796
nraynaud
lol
Posté le 05-01-2003 à 22:45:09  profilanswer
 

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)

n°279865
Musaran
Cerveaulté
Posté le 06-01-2003 à 07:46:27  profilanswer
 

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

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

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

 

Sujets relatifs
[CSS] Pkoi ça marche ça ??!!formulaire de m.. grrr! pkoi ça marche pas? (source inside)
[PHP] Ca marche pas..... mais pkoi ? Need help! ;-)c bon g ça marche... mé je c pas pkoi..
[ C++ ] - je comprend pas pkoi ca marche pas[Resolu][Java][Client/Server]M ode Console - Pkoi s attendent ils ?
runtime error 216 avant un new en en freepascal.je comprends pas pkoi.[Java]TCP Client ne marche que partiellement pkoi?[Resolu]
[C/Reseau]resolution d'IP => compil... mais pkoi? pliz c pour demain:/[JS] Explication du pkoi et du comment
Plus de sujets relatifs à : pkoi je peux pas faire x* operator+(x*,x*) ?


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