J'aimerais =E9crire une biblioth=E8que qui impl=E9mente des classes mais je
n'arrive pas =E0 me d=E9cider entre deux m=E9thodes pour nommer mes classes
(par exemple Truc, Bidule et Machin) sachant que ce sont des classes
qui ont de tr=E8s fortes chances de d=E9j=E0 exister dans de gros programmes=
et que donc, elles seront incluses dans un namespace sp=E9cifique :
1) Comme elles sont incluses dans un namespace, je les appelle tout
simplement Truc, Bidule et Machin. A la charge de l'utilisateur de ne
pas utiliser "using namespace" trop souvent.
2) J'assure le coup en pr=E9fixant mes classes, par exemple par "KOR",
et je les appelle KORTruc, KORBidule et KORMachin.
Merci par avance de vos conseils et de vos remarques.
K.
On Mon, 30 Jun 2008 07:49:39 -0700 (PDT), Korchkidu :
1) Comme elles sont incluses dans un namespace, je les appelle tout simplement Truc, Bidule et Machin.
Oui.
A la charge de l'utilisateur de ne pas utiliser "using namespace" trop souvent.
On n'utilise généralement pas using namespace. Du moins, pas sans en étudier précisément toutes les conséquences.
Par contre, n'hésite pas à utiliser des sous-namespaces quand c'est logique.
2) J'assure le coup en préfixant mes classes, par exemple par "KOR", et je les appelle KORTruc, KORBidule et KORMachin.
Non.
pjb
Korchkidu writes:
Bonjour à tous,
J'aimerais écrire une bibliothèque qui implémente des classes mais je n'arrive pas à me décider entre deux méthodes pour nommer mes classes (par exemple Truc, Bidule et Machin) sachant que ce sont des classes qui ont de très fortes chances de déjà exister dans de gros programmes et que donc, elles seront incluses dans un namespace spécifique :
1) Comme elles sont incluses dans un namespace, je les appelle tout simplement Truc, Bidule et Machin. A la charge de l'utilisateur de ne pas utiliser "using namespace" trop souvent. 2) J'assure le coup en préfixant mes classes, par exemple par "KOR", et je les appelle KORTruc, KORBidule et KORMachin.
Oui, il vaut mieux utiliser les namespaces.
Par exemple, pour les enums, enum ne défini pas un namespace, alors il faudrait le faire soi-même:
namespace Color { enum Color { Red,Blue,Green }};
namespace Apple { enum Apple { Golden, Red, Green }};
Alors on peut écrire: Apple fruit_kind=Apple::Red; Color fruit_color=Color::Red; sans confusion.
Pour ce qui est des namespaces, je crois que l'on peut "réexporter" des noms d'un namespace à l'autre non?
Alors tu pourrais utiliser comme namespace:
namespace com { namespace korchkidu { namespace libxyz { class Truc; class Machin; class Bidule; }}};
et pour l'utiliser facilement:
namespace kox { using namespace com::korchkidu::llibxyz; };
kox::Truc, kox::Machin, etc...
Mais ce dernier namespace est optionnel, et si on doit mélanger le code avec une autre bibliothèque qui défini un namespace kox, on pourra toujours définir:
namespce koch { using namespace com::korchkidu::llibxyz; };
et utiliser koch::Truc, koch::Machin, etc.
-- __Pascal Bourguignon__
Korchkidu <korchkidu@gmail.com> writes:
Bonjour à tous,
J'aimerais écrire une bibliothèque qui implémente des classes mais je
n'arrive pas à me décider entre deux méthodes pour nommer mes classes
(par exemple Truc, Bidule et Machin) sachant que ce sont des classes
qui ont de très fortes chances de déjà exister dans de gros programmes
et que donc, elles seront incluses dans un namespace spécifique :
1) Comme elles sont incluses dans un namespace, je les appelle tout
simplement Truc, Bidule et Machin. A la charge de l'utilisateur de ne
pas utiliser "using namespace" trop souvent.
2) J'assure le coup en préfixant mes classes, par exemple par "KOR",
et je les appelle KORTruc, KORBidule et KORMachin.
Oui, il vaut mieux utiliser les namespaces.
Par exemple, pour les enums, enum ne défini pas un namespace, alors il
faudrait le faire soi-même:
namespace Color {
enum Color {
Red,Blue,Green }};
namespace Apple {
enum Apple {
Golden, Red, Green }};
Alors on peut écrire:
Apple fruit_kind=Apple::Red;
Color fruit_color=Color::Red;
sans confusion.
Pour ce qui est des namespaces, je crois que l'on peut "réexporter"
des noms d'un namespace à l'autre non?
Alors tu pourrais utiliser comme namespace:
namespace com {
namespace korchkidu {
namespace libxyz {
class Truc;
class Machin;
class Bidule; }}};
et pour l'utiliser facilement:
namespace kox {
using namespace com::korchkidu::llibxyz;
};
kox::Truc, kox::Machin, etc...
Mais ce dernier namespace est optionnel, et si on doit mélanger le
code avec une autre bibliothèque qui défini un namespace kox, on
pourra toujours définir:
namespce koch {
using namespace com::korchkidu::llibxyz;
};
J'aimerais écrire une bibliothèque qui implémente des classes mais je n'arrive pas à me décider entre deux méthodes pour nommer mes classes (par exemple Truc, Bidule et Machin) sachant que ce sont des classes qui ont de très fortes chances de déjà exister dans de gros programmes et que donc, elles seront incluses dans un namespace spécifique :
1) Comme elles sont incluses dans un namespace, je les appelle tout simplement Truc, Bidule et Machin. A la charge de l'utilisateur de ne pas utiliser "using namespace" trop souvent. 2) J'assure le coup en préfixant mes classes, par exemple par "KOR", et je les appelle KORTruc, KORBidule et KORMachin.
Oui, il vaut mieux utiliser les namespaces.
Par exemple, pour les enums, enum ne défini pas un namespace, alors il faudrait le faire soi-même:
namespace Color { enum Color { Red,Blue,Green }};
namespace Apple { enum Apple { Golden, Red, Green }};
Alors on peut écrire: Apple fruit_kind=Apple::Red; Color fruit_color=Color::Red; sans confusion.
Pour ce qui est des namespaces, je crois que l'on peut "réexporter" des noms d'un namespace à l'autre non?
Alors tu pourrais utiliser comme namespace:
namespace com { namespace korchkidu { namespace libxyz { class Truc; class Machin; class Bidule; }}};
et pour l'utiliser facilement:
namespace kox { using namespace com::korchkidu::llibxyz; };
kox::Truc, kox::Machin, etc...
Mais ce dernier namespace est optionnel, et si on doit mélanger le code avec une autre bibliothèque qui défini un namespace kox, on pourra toujours définir:
namespce koch { using namespace com::korchkidu::llibxyz; };
et utiliser koch::Truc, koch::Machin, etc.
-- __Pascal Bourguignon__
Mickaël Wolff
Pascal J. Bourguignon a écrit :
Pour ce qui est des namespaces, je crois que l'on peut "réexporter" des noms d'un namespace à l'autre non?