|
Page : 1 2 Page Précédente | |
Auteur | Sujet : Question débile - fonctions membres C++ |
![]() Publicité | Posté le 10-02-2009 à 22:24:37 ![]() ![]() |
Joel F Real men use unique_ptr | ton ; c'ets une erreur de frappe là ?
|
mouletabille | Merci pour la réponse rapide. Oui bien sûr le ; dans la définition c'est une grosse faute de frappe Alors voilà un exemple de code complet : Truc.h
Truc.cpp
Main.cpp
Diagnostic ? Message édité par mouletabille le 10-02-2009 à 22:53:58 |
Joel F Real men use unique_ptr | c'ets quoi ton compilo Message édité par Joel F le 10-02-2009 à 22:55:25 |
mouletabille | On m'a parlé d'utiliser le pointeur this (ça m'a effectivement rappelé quelque chose), ça vous paraît une solution adaptée ? y a-t-il plus simple ? moins simple ? |
Joel F Real men use unique_ptr | normalement t'en as pas besoin à moins d'utiliser un compilo foireux.
|
mouletabille | Argh pardon monseigneur mais pitié pas le pal je corrige tout de suite ! pourquoi déjà au fait ? on m'a expliqué le problème que ça posait mais j'ai déjà oublié. OK pour les méthodes const, parce qu'elles ne modifient pas les attributs (right ?).
|
Joel F Real men use unique_ptr | je pense que ca n'a rien à voir mais, dev cpp ets assez moche et utilsie un vieux gcc. Installe CodeBlocks |
mouletabille | J'avais installé CodeBlocks mais ça avait l'air moins simple à prendre en main que Dev-C++ ; cela dit si tu me dis que c'est mieux je veux bien tenter la migration. |
superbob56 |
--------------- By bob. |
![]() Publicité | Posté le 11-02-2009 à 00:14:48 ![]() ![]() |
mouletabille | Les gars vous me portez la poisse je viens d'avoir mes premiers ennuis avec Dev-C++ ! Problème avec l'éditeur de texte plus précisément, quand je copiais/collais des lignes ça écrasait les lignes préexistantes au lieu de les décaler vers le bas (pourtant je n'étais pas en mode "inser" au niveau du clavier) et après impossible de sélectionner des portions de lignes, seulement des lignes entières ; ça vous parle ? Bon en tous cas je vais suivre vos conseils et me mettre à CodeBlocks asap.
|
Joel F Real men use unique_ptr | sauf que non, tu n'en as pas besoin normalement si l'appel est non-ambigu .... |
mouletabille | Ecoute vu que j'ai corrigé pas mal de bugs entre temps, peut-être qu'en fait ce n'était pas ça le problème. Je toujours essayer d'enlever le this pour voir si ça fonctionne encore ?
|
Un Programmeur | Si tu veux
|
Joel F Real men use unique_ptr | ca suffit oui |
mouletabille | Super merci beaucoup à vous deux ! C'est mieux d'utiliser une liste d'initialisation donc ?
|
Joel F Real men use unique_ptr | oui sauf que Point serait à passer en reference constante :
|
mouletabille | OK, et donc aussi dans mon prototype je suppose ?
|
mouletabille | ..et pour l'appel du coup je fais
|
Joel F Real men use unique_ptr | Non, tu passes jsute tona rguemnt de manière constante, puis tu en fais une copie. La copie elle n'est pas constante.
|
mouletabille | C'est bien ça le problème. J'avais bien compris (enfin je crois) les pointeurs, mais les références ça m'embrouille tout dans mes petits neurones. Si je comprends bien :
|
Joel F Real men use unique_ptr | Presque :
|
mouletabille | En effet ! D'ailleurs mon compilo n'a pas manqué de m'insulter quand j'ai essayé d'enlever le const& dans le prototype |
mouletabille | Comme promis je reviens avec deux nouvelles questions. Je précise que j'ai déjà trouvé des solutions via des recherches sur le net mais je ne suis pas sûr qu'elles soient optimales.
etc. Mais quelle est la bonne méthode ?
|
Joel F Real men use unique_ptr | Q1/ non c'est la bonne manière.
|
mouletabille | Merci pour ta réponse. J'ai fait une petite recherche sur la forme canonique de Coplien, je vois à peu près ce que c'est (justement je suis en plein dans la surcharge des opérateurs).
|
mouletabille | Salut tout le monde,
|
Joel F Real men use unique_ptr | les operateurs symmétriques comme + doivent etre implanté comme fonction libre non-friend et non comme membre. Mieux, la fonction + doit etre implanté à partir de la méthode +=
Message édité par Joel F le 15-02-2009 à 20:32:43 |
mouletabille | Ah ah alors ça je ne l'aurais pas trouvé tout seul. C'est cool ! Et ça me plait plus une définition symétrique comme ça. J'en apprends tous les jours avec toi mon cher Joel F. |
mouletabille | Autre question : pourquoi le type de retour de la méthode est-il Point& et pas Point ? (*this) désigne bien l'objet lui-même non ? |
Joel F Real men use unique_ptr | en general, les fonctions symmetriques sont externes oui.
|
mouletabille | OK je note. Cela dit Point * double n'est pas symétrique (et j'en ai d'autres comme ça, Matrice * double, Matrice * point...)
|
Joel F Real men use unique_ptr | non, toutes les variantes de = doivent renvoyer l'objet modifier pr le chainage :
|
mouletabille | OK je comprends mieux. Mais (désolé d'être lourd) le type de l'objet est Point tout court ; je ne comprends pas pourquoi le type de retour de la fonction est Point& ? On renvoie le point et pas une référence sur le point...
|
Joel F Real men use unique_ptr | bah si = ou += renvoyait une instance, il faudrait la recopier depuis la pile vers sa destination, ce qui serait bien couteux.
|
mouletabille | Ouaip je vois à peu près... Bon il faut que je médite tout ça.
|
mouletabille | Par contre l'opérateur d'affectation = je le laisse comme membre de la classe (because forme canonique de Coplien etc.) ou alors non (because égalités chaînées) ? |
mouletabille | En fait l'histoire de renvoyer une référence plutôt qu'une instance ça vaut pour n'importe quelle fonction renvoyant un objet non ?
|
Joel F Real men use unique_ptr | operator= n'est pas symetrique car le membre gauche à un role particulier :=> membre
|
mouletabille | Yo,
|
![]() Publicité | Posté le ![]() ![]() |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
[C++] Eclipse + CDT pour dev en C++ vous en pensez quoi? | Fonction md5() en C |
[C++] transformer du texte en vocale | Problème pour un exécutable en langage C - SDL |
[C][Linux]Que fait un programme qui reçoit un signal ? | [C++] mot de passe et console DOS |
Une question sur les suites/chaine de caracteres:) | Quelques question sur mon script contact. |
Inclure des fichiers en C. | Besoin d'aide pour mon prog en C# |
Plus de sujets relatifs à : Question débile - fonctions membres C++ |