C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Classes et use namespace

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
JM
Guest





PostPosted: Fri Sep 24, 2004 12:05 pm    Post subject: Classes et use namespace Reply with quote



Voila mon problème.
J'ai créé une classe CGraph avec un certain nombres de fonctions
statiques que j'utilise un peu partout.
Mais au bout d'un moment, utiliser des CGraph::Fonction, cela s'avère
chiant et peu lisible.
Il n'y a pas moyen avec les namespace par exemple d'utiliser directement
Fonction?
J'ai pas réussi.

merci d'avance
Back to top
Christophe de VIENNE
Guest





PostPosted: Fri Sep 24, 2004 12:28 pm    Post subject: Re: Classes et use namespace Reply with quote



JM wrote:
Quote:
Voila mon problème.
J'ai créé une classe CGraph avec un certain nombres de fonctions
statiques que j'utilise un peu partout.
Mais au bout d'un moment, utiliser des CGraph::Fonction, cela s'avère
chiant et peu lisible.
Il n'y a pas moyen avec les namespace par exemple d'utiliser directement
Fonction?
J'ai pas réussi.

Si CGraph est un namespace et non une classe, tu peux écrire par exemple :

--- CGraph.h ---
namespace CGraph
{
void Fonction();
}


--- xxx.cc ---
using namespace CGraph;

int une_fonction()
{
Fonction();
}


A+

Christophe

--
Christophe de Vienne

Back to top
Arnaud Meurgues
Guest





PostPosted: Fri Sep 24, 2004 12:31 pm    Post subject: Re: Classes et use namespace Reply with quote



JM wrote:
Quote:
Voila mon problème.
J'ai créé une classe CGraph avec un certain nombres de fonctions
statiques que j'utilise un peu partout.
Mais au bout d'un moment, utiliser des CGraph::Fonction, cela s'avère
chiant et peu lisible.
Il n'y a pas moyen avec les namespace par exemple d'utiliser directement
Fonction?

Ben, si c'est pour utiliser directement Fonction, pourquoi avoir déclaré
ces fonctions dans une classes ?

Il pourrait être suffisant de les déclarer dans un namespace:

namespace Graph {
class CGraph { // la classe CGraph sans ses fonctions statiques
// ...
};
void Fonction(...);
}

Ensuite, il suffit de faire un
using Graph::Function;
pour pouvoir utiliser Graph::Function en l'appelant directement Function.

Autre solution s'il est obligatoire de déclarer ces fonctions comme des
fonctions statiques de CGraph : faire des wrappers dans un namespace. Ça
donnerait :

class CGraph {
void Function(...);
//...
};

namespace Graph {
inline void Function(...) { return CGraph::Function(...); }
}

Ensuite, on fait pareil qu'avec la solution précédente...

--
Arnaud
(Supprimez les geneurs pour me répondre)

Back to top
JM
Guest





PostPosted: Fri Sep 24, 2004 12:46 pm    Post subject: Re: Classes et use namespace Reply with quote

Merci à vous deux.
Je vais essayer.

Arnaud Meurgues a écrit :

Quote:
JM wrote:

Voila mon problème.
J'ai créé une classe CGraph avec un certain nombres de fonctions
statiques que j'utilise un peu partout.
Mais au bout d'un moment, utiliser des CGraph::Fonction, cela s'avère
chiant et peu lisible.
Il n'y a pas moyen avec les namespace par exemple d'utiliser
directement Fonction?


Ben, si c'est pour utiliser directement Fonction, pourquoi avoir déclaré
ces fonctions dans une classes ?

Il pourrait être suffisant de les déclarer dans un namespace:

namespace Graph {
class CGraph { // la classe CGraph sans ses fonctions statiques
// ...
};
void Fonction(...);
}

Ensuite, il suffit de faire un
using Graph::Function;
pour pouvoir utiliser Graph::Function en l'appelant directement Function.

Autre solution s'il est obligatoire de déclarer ces fonctions comme des
fonctions statiques de CGraph : faire des wrappers dans un namespace. Ça
donnerait :

class CGraph {
void Function(...);
//...
};

namespace Graph {
inline void Function(...) { return CGraph::Function(...); }
}

Ensuite, on fait pareil qu'avec la solution précédente...


Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.