Où mettre des méthodes non membres ? [C++ débutant] - C++ - Programmation
Marsh Posté le 04-03-2006 à 22:01:25
ReplyMarsh Posté le 04-03-2006 à 22:23:36
bah tu fous tes fonctions en static et puis voila
Marsh Posté le 04-03-2006 à 23:19:50
ReplyMarsh Posté le 05-03-2006 à 01:53:48
Taz a écrit : méthode non-membre, concept intéressant |
Des fonctions, quoi
++fab a écrit : virtuelle ou pas ? |
Non !
Harkonnen a écrit : bah tu fous tes fonctions en static et puis voila |
Dans le main() ?
Taz a écrit : ou des fonctions libres |
Pkoi namespace ?
Marsh Posté le 05-03-2006 à 03:16:44
ParadoX a écrit : |
mais non pas dans le main ! depuis quand on définit des fonctions dans d'autres fonctions, bougre d'ane ?
tu es en C++ là, donc il n'existe pas de méthodes non membres. dans ce cas là, tu te créé une classe "fourre tout" dans laquelle tu définis toutes les méthodes dont tu estimes qu'elles n'ont pas de place ailleurs, et tu les déclares en static, ça t'évitera d'instancier cette classe à chaque fois que tu voudras accéder à une de ces fonctions. mais dans ce cas là, il faudra que chaque fonction utilises ses propres données, tu oublies les données membres.
ou alors comme dit Taz, tu te créé des fonctions libres (fonction non rattachée à un objet)
ParadoX a écrit : |
pour éviter les collisions de noms
Marsh Posté le 05-03-2006 à 09:56:12
Harkonnen a écrit : mais non pas dans le main ! depuis quand on définit des fonctions dans d'autres fonctions, bougre d'ane ? |
Ben en Pascal c'est possible et assez déroutant.
Marsh Posté le 05-03-2006 à 10:24:23
En c++ avec les extensions GNU de gcc (c'est surement pas le seul), c'est possible aussi.
Marsh Posté le 05-03-2006 à 11:01:17
Harkonnen a écrit : tu es en C++ là, donc il n'existe pas de méthodes non membres. dans ce cas là, tu te créé une classe "fourre tout" dans laquelle tu définis toutes les méthodes dont tu estimes qu'elles n'ont pas de place ailleurs, et tu les déclares en static |
Ça va pas On ne va pas créer une classe vide juste pour mettre des méthodes statiques dedans ... Déjà que les gens on tendance à tout mettre en méthode alors que de simples fonctions auraient parfaitement suffit, c'est pas le moment de conseiller de transformer de simples fonctions en méthodes juste pour le plaisir de faire de l'objet.
http://www.gotw.ca/gotw/084.htm
Marsh Posté le 05-03-2006 à 11:24:09
Kristoph a écrit : Ça va pas On ne va pas créer une classe vide juste pour mettre des méthodes statiques dedans ... |
Ben ça s'appelle une classe utilitaire dans la terminologie adhoc
Marsh Posté le 05-03-2006 à 11:50:22
Harkonnen a écrit : mais non pas dans le main ! depuis quand on définit des fonctions dans d'autres fonctions, bougre d'ane ? |
Merci pour le "bougre d'âne"
On a tous débuté un jour, hein
Merci qd meme
Marsh Posté le 05-03-2006 à 11:52:21
autant directement utiliser un namespace, c'est prévu pour ...
Marsh Posté le 05-03-2006 à 12:07:04
pas besoin de classe alors ?
Juste un fichier à inclure, ds lequel j'aurais défini mon namespace et mes fonctions ?
Marsh Posté le 05-03-2006 à 12:16:53
ParadoX a écrit : pas besoin de classe alors ? |
Oui, c'est très bien comme ça
Marsh Posté le 05-03-2006 à 12:18:16
C'est fait, et ça marche
Merci
Par contre, le static, c'est plus la peine, j'imagine ?
De toutes façons, ça passait pas (peut etre parce que j'ai 2 fonctions qui portent le même nom, mais à signature différente)
'fin bref
Marsh Posté le 05-03-2006 à 12:27:18
Kristoph a écrit : Ça va pas On ne va pas créer une classe vide juste pour mettre des méthodes statiques dedans ... Déjà que les gens on tendance à tout mettre en méthode alors que de simples fonctions auraient parfaitement suffit, c'est pas le moment de conseiller de transformer de simples fonctions en méthodes juste pour le plaisir de faire de l'objet. |
100% d'accord, mais je ne vois aucun rapport avec le gotw que tu cites
Marsh Posté le 05-03-2006 à 12:30:19
++fab a écrit : 100% d'accord, mais je ne vois aucun rapport avec le gotw que tu cites |
Rapport à la volonté de tout mettre en tant que méthode membre dans des classes, même s'il faut faire des contorsions pour y arriver. Mais je suis d'accord que ce n'est pas le meilleurs exemple possible.
Marsh Posté le 05-03-2006 à 12:33:46
OK, j'avais mal lu ton post, et j'étais resté sur les fonctions membres statiques :|
Marsh Posté le 04-03-2006 à 19:44:11
Bonjour,
C'est mon dernier topic concernant ce fameux projet C++, j'ai quasiment tout fini, et maintenant j'ai réalisé que j'ai des méthodes qui ne sont pas spécialement des méthodes de classe, mais plutot des fonctions.
Voici le plan de mes Classes:
http://orgasm.free.fr/hfr/planc++.jpg
(et le sujet du projet, si ça vous intéresse)
http://orgasm.free.fr/hfr/sujetc++.jpg
J'ai par exemple des fonctions de déplacement de d'objets / groupes / formes (=même chose). Ce ne sont que des méthodes "de manipulation", et pas des méthodes spécifiques à une classe en particulier. Ou mettre ces fonctions ? Dans le main() ?
Faire une class "manip" et les mettre la dedans ?
Enfin, j'ai un dernier souci avec les couleurs dans la console à résoudre, si ça vous dit:
http://forum.hardware.fr/hardwaref [...] 5841-1.htm
et merci de m'avoir supporté tout au long de ce projet
---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt