J'ai besoin d'une classe Strategies, qui ait la même partie private, mais
avec la partie publique différente, car j'ai besoin de moins de
variables...
Comme je ne connais (pour l'instant) rien à l'héritage, je voulais savoir
si j'avais besoin de passer par là, ou bien s'il fallait que je crée une
nouvelle classe...
Ai-je besoin de préciser que ça commence à devenir sérieux ?
Non, pas besoin... Je sais que c'est sérieux quand je ne comprends rien ;)
Néanmoins, je ne suis pas sûr que tout cela soit vraiment nécessaire... (Ou peut-être que si, mais comme je ne vois pas comment ça peut tourner, je ne m'en rends pas compte??)
(mais je dois dire que je trouve que la conception en générale est bien plus stimulante que la programmation de bourrins faisant office de front-end d'accès aux bases de donnée ;) )
Ai-je besoin de préciser que ça commence à devenir sérieux ?
Non, pas besoin... Je sais que c'est sérieux quand je ne comprends rien ;)
Néanmoins, je ne suis pas sûr que tout cela soit vraiment nécessaire... (Ou
peut-être que si, mais comme je ne vois pas comment ça peut tourner, je ne
m'en rends pas compte??)
(mais je dois dire que je trouve que la conception en générale est
bien plus stimulante que la programmation de bourrins faisant office
de front-end d'accès aux bases de donnée ;) )
Ai-je besoin de préciser que ça commence à devenir sérieux ?
Non, pas besoin... Je sais que c'est sérieux quand je ne comprends rien ;)
Néanmoins, je ne suis pas sûr que tout cela soit vraiment nécessaire... (Ou peut-être que si, mais comme je ne vois pas comment ça peut tourner, je ne m'en rends pas compte??)
(mais je dois dire que je trouve que la conception en générale est bien plus stimulante que la programmation de bourrins faisant office de front-end d'accès aux bases de donnée ;) )
[Je réponds ici car je ne retrouve pas le message ad hoc]
Perso, je n'ai jamais utilisé std::pair<>, sauf en y étant obligé (via std::map<>::iterator par exemple). C'est tellement simple de faire miexu (comprendre : plus adapté à chaque cas) que je ne vois pas bien l'intérêt de cette classe.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On 11 Aug 2003 22:46:24 GMT, Zoubidaman <zoubidaman@hotmail.com>
wrote:
typedef pair<int,int> Pauses;
[Je réponds ici car je ne retrouve pas le message ad hoc]
Perso, je n'ai jamais utilisé std::pair<>, sauf en y étant obligé (via
std::map<>::iterator par exemple). C'est tellement simple de faire
miexu (comprendre : plus adapté à chaque cas) que je ne vois pas bien
l'intérêt de cette classe.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
[Je réponds ici car je ne retrouve pas le message ad hoc]
Perso, je n'ai jamais utilisé std::pair<>, sauf en y étant obligé (via std::map<>::iterator par exemple). C'est tellement simple de faire miexu (comprendre : plus adapté à chaque cas) que je ne vois pas bien l'intérêt de cette classe.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Michaël Delva
Fabien LE LEZ wrote in news::
On 12 Aug 2003 09:06:40 GMT, "Michaël Delva" wrote:
double Duree();
int, plutôt, non ?
Oui, je l'avais mis... erreur d'inattention (bien que c'est toi qui ait mis double dans le premier exemple que tu m'as proposé ;) )
int str_len( char const * s ) { return std::strlen( s ) ; }
int str_len( std::string const & s ) { return s.length() ; }
int str_len( AnsiString const & s ) { return s.Len ; // Je ne connais pas AnsiString. }
int str_len( CString const & s ) { // Je ne connais pas CString. return static_cast< int >( fun_namespace::obtenir_valeur_FROM_Clef( s.la_longueur_de_LaChaineEn_entierNonStandard()->key ) ) ; }
template < typename String > void f( String const & s ) { int length = str_len( s ) ; // ... }
int str_len( char const * s )
{
return std::strlen( s ) ;
}
int str_len( std::string const & s )
{
return s.length() ;
}
int str_len( AnsiString const & s )
{
return s.Len ; // Je ne connais pas AnsiString.
}
int str_len( CString const & s )
{
// Je ne connais pas CString.
return static_cast< int >(
fun_namespace::obtenir_valeur_FROM_Clef(
s.la_longueur_de_LaChaineEn_entierNonStandard()->key
)
) ;
}
template < typename String >
void f( String const & s )
{
int length = str_len( s ) ;
// ...
}
int str_len( char const * s ) { return std::strlen( s ) ; }
int str_len( std::string const & s ) { return s.length() ; }
int str_len( AnsiString const & s ) { return s.Len ; // Je ne connais pas AnsiString. }
int str_len( CString const & s ) { // Je ne connais pas CString. return static_cast< int >( fun_namespace::obtenir_valeur_FROM_Clef( s.la_longueur_de_LaChaineEn_entierNonStandard()->key ) ) ; }
template < typename String > void f( String const & s ) { int length = str_len( s ) ; // ... }
[*] C'est, si je me souviens bien, ce qui a conduit à l'adoption, et avant à la conception, du Koenig Lookup.
--drkm
Michaël Delva
Tu as moins de paramètres fournis à ton constructeur si tu en fournis via des objets que tu as construits avant. Pour être plus clair, si tu fournis un paramètre intervalle au lieu de debut, fin et pause, c'est quand même moins lourd à utiliser. C'est aussi un peu plus sur, car il est facile de se tromper sur l'ordre des paramètres que tu fournis, particulièrement quand tu en as beaucoup de même type (les trois que je cite étant du type int, c'est facile de balancer la pause à la place de début)
Chris
Oui, mais l'écriture de la construction est plus longue:
Tu as moins de paramètres fournis à ton constructeur si tu en fournis
via des objets que tu as construits avant. Pour être plus clair, si tu
fournis un paramètre intervalle au lieu de debut, fin et pause, c'est
quand même moins lourd à utiliser. C'est aussi un peu plus sur, car il
est facile de se tromper sur l'ordre des paramètres que tu fournis,
particulièrement quand tu en as beaucoup de même type (les trois que
je cite étant du type int, c'est facile de balancer la pause à la
place de début)
Chris
Oui, mais l'écriture de la construction est plus longue:
Tu as moins de paramètres fournis à ton constructeur si tu en fournis via des objets que tu as construits avant. Pour être plus clair, si tu fournis un paramètre intervalle au lieu de debut, fin et pause, c'est quand même moins lourd à utiliser. C'est aussi un peu plus sur, car il est facile de se tromper sur l'ordre des paramètres que tu fournis, particulièrement quand tu en as beaucoup de même type (les trois que je cite étant du type int, c'est facile de balancer la pause à la place de début)
Chris
Oui, mais l'écriture de la construction est plus longue:
Bon, ça marche, là n'est pas le problème (quoi que si vous trouvez que c'est un problème de procéder de la sorte, dites le moi!!)
Quand je veux récupérer mes données, j'en arrive à ça par exemple
for (Analyse_Donnees::ite_Possession_Joueur GO_Possession = PiPJ.first; GO_Possession != PiPJ.second; ++GO_Possession) { int DebutPossession = GO_Possession->second.debut_et_fin.debut; }
C'est cette succession de "." qui me semblait bizarre...
Pas à vous? -- --------------------------------------- http://oppc.free.fr
Michaël Delva
Bon, ben voilà le dernier argument qui va me convaincre de ne pas hésiter à utiliser plus souvent les classes...
En fait je partais du principe que si un code utilise beaucoup de classes (évidemment pas les gros projets), c'est que peut-être il y a une erreur de concepion...
Bon, ben voilà le dernier argument qui va me convaincre de ne pas hésiter à
utiliser plus souvent les classes...
En fait je partais du principe que si un code utilise beaucoup de classes
(évidemment pas les gros projets), c'est que peut-être il y a une erreur de
concepion...
Bon, ben voilà le dernier argument qui va me convaincre de ne pas hésiter à utiliser plus souvent les classes...
En fait je partais du principe que si un code utilise beaucoup de classes (évidemment pas les gros projets), c'est que peut-être il y a une erreur de concepion...
C'est mieux de passer par des structures que par la STL? (Intervalle au lieu de pair<int,int>)
C'est mieux d'utiliser une structure ou classe selon la raison qui a poussé à sa création. Prendre pair pour garder des données clairement identifiables (comme début et fin) est aussi mauvais que de prendre un vector<int> et d'y mettre toutes données membres de type int. En fait, on peut se demander pourquoi la STL (et par suite la SL) n'a pas créé de petites structures spécialisées pour les cas où elle utilise plutôt pair. Lest first et second sont parfois facilement à confondre...
[...]
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:Xns93D52DAD3BF5zoubidamanhotmailcom@213.228.0.196,
C'est mieux de passer par des structures que par la STL?
(Intervalle au lieu de pair<int,int>)
C'est mieux d'utiliser une structure ou classe selon la raison
qui a poussé à sa création. Prendre pair pour garder des
données clairement identifiables (comme début et fin) est
aussi mauvais que de prendre un vector<int> et d'y mettre toutes
données membres de type int. En fait, on peut se demander
pourquoi la STL (et par suite la SL) n'a pas créé de petites
structures spécialisées pour les cas où elle utilise plutôt
pair. Lest first et second sont parfois facilement à confondre...
[...]
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui
ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
C'est mieux de passer par des structures que par la STL? (Intervalle au lieu de pair<int,int>)
C'est mieux d'utiliser une structure ou classe selon la raison qui a poussé à sa création. Prendre pair pour garder des données clairement identifiables (comme début et fin) est aussi mauvais que de prendre un vector<int> et d'y mettre toutes données membres de type int. En fait, on peut se demander pourquoi la STL (et par suite la SL) n'a pas créé de petites structures spécialisées pour les cas où elle utilise plutôt pair. Lest first et second sont parfois facilement à confondre...
[...]
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Fabien LE LEZ
On Tue, 12 Aug 2003 22:35:03 -0400, "Michel Michaud" wrote:
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
Dans un bouquin de Java ?
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On Tue, 12 Aug 2003 22:35:03 -0400, "Michel Michaud" <mm@gdzid.com>
wrote:
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui
ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
Dans un bouquin de Java ?
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On Tue, 12 Aug 2003 22:35:03 -0400, "Michel Michaud" wrote:
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
Dans un bouquin de Java ?
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Julien Blanc
Fabien LE LEZ wrote:
On Tue, 12 Aug 2003 22:35:03 -0400, "Michel Michaud" wrote:
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
Dans un bouquin de Java ?
dans des bouquins d'intégristes, diront certains :).
En fait, il me parait beaucoup plus sage d'encapsuler les méthodes au moins dans un namespace. Et dans les langages où on ne dispose pas de namespace, on utilise une classe vide à la place. C'est somme toute peu coûteux et plus sage, car permettant d'éviter des conflits de noms et améliorant l'évolutivité du code.
(évidemment, je parle de méthodes à portée globale, ici).
-- Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.
Fabien LE LEZ wrote:
On Tue, 12 Aug 2003 22:35:03 -0400, "Michel Michaud" <mm@gdzid.com>
wrote:
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui
ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
Dans un bouquin de Java ?
dans des bouquins d'intégristes, diront certains :).
En fait, il me parait beaucoup plus sage d'encapsuler les méthodes au
moins dans un namespace. Et dans les langages où on ne dispose pas de
namespace, on utilise une classe vide à la place. C'est somme toute peu
coûteux et plus sage, car permettant d'éviter des conflits de noms et
améliorant l'évolutivité du code.
(évidemment, je parle de méthodes à portée globale, ici).
--
Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.
On Tue, 12 Aug 2003 22:35:03 -0400, "Michel Michaud" wrote:
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Où as-tu lu ça ?
Dans un bouquin de Java ?
dans des bouquins d'intégristes, diront certains :).
En fait, il me parait beaucoup plus sage d'encapsuler les méthodes au moins dans un namespace. Et dans les langages où on ne dispose pas de namespace, on utilise une classe vide à la place. C'est somme toute peu coûteux et plus sage, car permettant d'éviter des conflits de noms et améliorant l'évolutivité du code.
(évidemment, je parle de méthodes à portée globale, ici).
-- Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.