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

  FORUM HardWare.fr
  Programmation
  C++

  [C++ débutant] Où mettre des méthodes non membres ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ débutant] Où mettre des méthodes non membres ?

n°1318533
ParadoX
Posté le 04-03-2006 à 19:44:11  profilanswer
 


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() ?  :heink:  
 
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
 
 :hello: et merci de m'avoir supporté tout au long de ce projet :sweat:  :D  
 


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
mood
Publicité
Posté le 04-03-2006 à 19:44:11  profilanswer
 

n°1318632
Taz
bisounours-codeur
Posté le 04-03-2006 à 22:01:25  profilanswer
 

méthode non-membre, concept intéressant

n°1318637
++fab
victime du syndrome IH
Posté le 04-03-2006 à 22:05:44  profilanswer
 

virtuelle ou pas ? ;)

n°1318649
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-03-2006 à 22:23:36  profilanswer
 

bah tu fous tes fonctions en static et puis voila


---------------
J'ai un string dans l'array (Paris Hilton)
n°1318725
Taz
bisounours-codeur
Posté le 04-03-2006 à 23:19:50  profilanswer
 

ou des fonctions libres
 
tout dans des namespace surtout

n°1318812
ParadoX
Posté le 05-03-2006 à 01:53:48  profilanswer
 

Taz a écrit :

méthode non-membre, concept intéressant


Des fonctions, quoi :o
 

++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
tout dans des namespace surtout


Pkoi namespace ?
 
 :jap:  


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1318820
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-03-2006 à 03:16:44  profilanswer
 

ParadoX a écrit :


 
Dans le main() ?


mais non pas dans le main ! depuis quand on définit des fonctions dans d'autres fonctions, bougre d'ane ? [:mlc]
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 :


Pkoi namespace ?


pour éviter les collisions de noms

Message cité 3 fois
Message édité par Harkonnen le 05-03-2006 à 03:17:19

---------------
J'ai un string dans l'array (Paris Hilton)
n°1318836
slash33
Posté le 05-03-2006 à 09:56:12  profilanswer
 

Harkonnen a écrit :

mais non pas dans le main ! depuis quand on définit des fonctions dans d'autres fonctions, bougre d'ane ? [:mlc]


Ben en Pascal c'est possible et assez déroutant.


Message édité par slash33 le 05-03-2006 à 09:56:45
n°1318840
++fab
victime du syndrome IH
Posté le 05-03-2006 à 10:24:23  profilanswer
 

En c++ avec les extensions GNU de gcc (c'est surement pas le seul), c'est possible aussi.

n°1318849
Kristoph
Posté le 05-03-2006 à 11:01:17  profilanswer
 

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 :o 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

mood
Publicité
Posté le 05-03-2006 à 11:01:17  profilanswer
 

n°1318864
slash33
Posté le 05-03-2006 à 11:24:09  profilanswer
 

Kristoph a écrit :

Ça va pas :o 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  :o

n°1318878
ParadoX
Posté le 05-03-2006 à 11:50:22  profilanswer
 

Harkonnen a écrit :

mais non pas dans le main ! depuis quand on définit des fonctions dans d'autres fonctions, bougre d'ane ? [:mlc]
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)
 
 
pour éviter les collisions de noms


 
Merci pour le "bougre d'âne" :sweat:  
On a tous débuté un jour, hein [:spamafote]
 
Merci qd meme :)


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1318880
KangOl
Profil : pointeur
Posté le 05-03-2006 à 11:52:21  profilanswer
 

autant directement utiliser un namespace, c'est prévu pour ...

n°1318887
ParadoX
Posté le 05-03-2006 à 12:07:04  profilanswer
 


pas besoin de classe alors ?
 
Juste un fichier à inclure, ds lequel j'aurais défini mon namespace et mes fonctions ?


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1318888
Kristoph
Posté le 05-03-2006 à 12:16:53  profilanswer
 

ParadoX a écrit :

pas besoin de classe alors ?
 
Juste un fichier à inclure, ds lequel j'aurais défini mon namespace et mes fonctions ?


Oui, c'est très bien comme ça :)

n°1318889
ParadoX
Posté le 05-03-2006 à 12:18:16  profilanswer
 

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


---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt
n°1318891
++fab
victime du syndrome IH
Posté le 05-03-2006 à 12:27:18  profilanswer
 

Kristoph a écrit :

Ça va pas :o 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


 
100% d'accord, mais je ne vois aucun rapport avec le gotw que tu cites :/

n°1318893
Kristoph
Posté le 05-03-2006 à 12:30:19  profilanswer
 

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

n°1318894
++fab
victime du syndrome IH
Posté le 05-03-2006 à 12:33:46  profilanswer
 

OK, j'avais mal lu ton post, et j'étais resté sur les fonctions membres statiques :|


Message édité par ++fab le 05-03-2006 à 12:35:31

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

  [C++ débutant] Où mettre des méthodes non membres ?

 

Sujets relatifs
débutant en html à besoin de quelque renseignements[C++ débutant] Du texte en couleur dans la console ?
[C++ débutant] Génération d'instances dynamique (?)comment mettre un video sur le web seulement en visualisation
[débutant inside] probleme lors de la construction d'un jeu de cartes.[C++ débutant] Tester si un Objet est d'un type précis ?
[debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu[débutant] char* + char* = concaténer
[URGENT] [C++ débutant] problème avec tableau a plusieurs dimensions[!PERL] recuperation de données (pour débutant)
Plus de sujets relatifs à : [C++ débutant] Où mettre des méthodes non membres ?


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