Je débute avec c++. Je voudrais structurer mon programme en fichiers .h
et fichier .cc.
Dans un fichier manipstr.h j'ai déclaré une fonction convertToUpperCase
(string)
Le début de manipstr.h est le suivant:
#include <string>
#ifndef MANIPSTR_H
#define MANIPSTR_H
string convertToUpperCase (string);
#endif
Lors de la compilation, j'obtiens le message suivant:
manipstr.h:6: error: `string' was not declared in this scope
Apparemment la ligne "#include <string>" dans mon fichier manipstr.h n'a
servi à rien...
Comment dois-je faire pour pouvoir déclarer dans manipstr.h des
fonctions utilisant la classe string ? (quelle ligne dois-je écrire dans
mon fichier .h)
Désolé de poser une question aussi basique mais je n'ai pas trouvé la
réponse via google.
| dis "jamais de using dans un .h", je sous-entends "à moins que tu | ne saches vraiment ce que tu fais, et que dans ton cas précis il | y ait une bonne raison de faire autrement". Comme c'est un peu
En français, « éviter » se rapproche plus de ça que « jamais ».
En informatique professionnelle, toutes les « guidelines » de programmation commence par une règle d'or : on peut toujours violer la règle si c'est justifié. André a présenté une des règles, non les « guidelines » complètes. Il va de soi pour un professionnel qu'il y a d'autres règles. Et que la règle d'or s'y trouve. On ne va pas s'emmerder avec une verbosité inutile pour des gens qui s'y connaissent en génie logicielle.
Mais lorsque je vois « jamais de using dans un .h », je comprends qu'il ne faut jamais utiliser le mot-clef dans un en-tête. C'est quand même loin de l'objectif.
Je me disais bien qu'André voulait dire quelque chose d'un peu différent, mais parceque je connaissais la règle. Ceux qui ne la connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à qui est destinée l'énonciation de cette règle si ce n'est à ceux qui ne la connaissent pas ?
--drkm
kanze@gabi-soft.fr writes:
Gabriel Dos Reis wrote:
Andre Heinen <nospam@nospam.invalid> writes:
[...]
| dis "jamais de using dans un .h", je sous-entends "à moins que tu
| ne saches vraiment ce que tu fais, et que dans ton cas précis il
| y ait une bonne raison de faire autrement". Comme c'est un peu
En français, « éviter » se rapproche plus de ça que « jamais
».
En informatique professionnelle, toutes les « guidelines » de
programmation commence par une règle d'or : on peut toujours violer la
règle si c'est justifié. André a présenté une des règles, non les
« guidelines » complètes. Il va de soi pour un professionnel qu'il y
a
d'autres règles. Et que la règle d'or s'y trouve. On ne va pas
s'emmerder avec une verbosité inutile pour des gens qui s'y
connaissent
en génie logicielle.
Mais lorsque je vois « jamais de using dans un .h », je comprends
qu'il ne faut jamais utiliser le mot-clef dans un en-tête. C'est
quand même loin de l'objectif.
Je me disais bien qu'André voulait dire quelque chose d'un peu
différent, mais parceque je connaissais la règle. Ceux qui ne la
connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à
qui est destinée l'énonciation de cette règle si ce n'est à ceux qui
ne la connaissent pas ?
| dis "jamais de using dans un .h", je sous-entends "à moins que tu | ne saches vraiment ce que tu fais, et que dans ton cas précis il | y ait une bonne raison de faire autrement". Comme c'est un peu
En français, « éviter » se rapproche plus de ça que « jamais ».
En informatique professionnelle, toutes les « guidelines » de programmation commence par une règle d'or : on peut toujours violer la règle si c'est justifié. André a présenté une des règles, non les « guidelines » complètes. Il va de soi pour un professionnel qu'il y a d'autres règles. Et que la règle d'or s'y trouve. On ne va pas s'emmerder avec une verbosité inutile pour des gens qui s'y connaissent en génie logicielle.
Mais lorsque je vois « jamais de using dans un .h », je comprends qu'il ne faut jamais utiliser le mot-clef dans un en-tête. C'est quand même loin de l'objectif.
Je me disais bien qu'André voulait dire quelque chose d'un peu différent, mais parceque je connaissais la règle. Ceux qui ne la connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à qui est destinée l'énonciation de cette règle si ce n'est à ceux qui ne la connaissent pas ?
--drkm
Andre Heinen
On 8 Dec 2004 00:28:00 -0800, wrote:
Ce que tu as dit, mot-à-mot, c'est « jamais de using dans un .h ». Or, je doute que c'est réelement ça tes sentiments. J'imagine que tu pensais quelque chose plutôt du genre « jamais un directif de using à la portée globale dans un en-tête ».
Effectivement, c'est ça que je voulais dire. La question de départ, d'Edwin Groulala, était de savoir comment utiliser std::string dans un en-tête. Fallait-il y mettre un "using namespace std;" global? Je me limitais à ce contexte-là.
Quelqu'un de constructif aurait signalé que ton énoncée manquait de précision, et qu'elle disait à la fois plus et moins que ce que tu voulais dire (parce que pour moi, au moin, l'intention était évidente, même si la formulation n'était pas parfaite). En expliquant pourquoi, évidemment. Mais ben, on est comme on est.
Effectivement, Gaby a eu raison de faire la mise au point. Et drkm n'a pas tort non plus, quand il nous rappelle que nous sommes lus aussi par des gens pour qui ce n'est pas clair.
Mais je préfère quand Gaby est constructif tout de suite... ;-)
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
On 8 Dec 2004 00:28:00 -0800, kanze@gabi-soft.fr wrote:
Ce que tu as dit, mot-à-mot, c'est « jamais de using dans un .h ».
Or,
je doute que c'est réelement ça tes sentiments. J'imagine que tu
pensais
quelque chose plutôt du genre « jamais un directif de using à la
portée
globale dans un en-tête ».
Effectivement, c'est ça que je voulais dire. La question de
départ, d'Edwin Groulala, était de savoir comment utiliser
std::string dans un en-tête. Fallait-il y mettre un "using
namespace std;" global? Je me limitais à ce contexte-là.
Quelqu'un de constructif aurait signalé que ton énoncée manquait de
précision, et qu'elle disait à la fois plus et moins que ce que tu
voulais dire (parce que pour moi, au moin, l'intention était
évidente,
même si la formulation n'était pas parfaite). En expliquant pourquoi,
évidemment. Mais ben, on est comme on est.
Effectivement, Gaby a eu raison de faire la mise au point. Et
drkm n'a pas tort non plus, quand il nous rappelle que nous
sommes lus aussi par des gens pour qui ce n'est pas clair.
Mais je préfère quand Gaby est constructif tout de suite...
;-)
--
Andre Heinen
My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
Ce que tu as dit, mot-à-mot, c'est « jamais de using dans un .h ». Or, je doute que c'est réelement ça tes sentiments. J'imagine que tu pensais quelque chose plutôt du genre « jamais un directif de using à la portée globale dans un en-tête ».
Effectivement, c'est ça que je voulais dire. La question de départ, d'Edwin Groulala, était de savoir comment utiliser std::string dans un en-tête. Fallait-il y mettre un "using namespace std;" global? Je me limitais à ce contexte-là.
Quelqu'un de constructif aurait signalé que ton énoncée manquait de précision, et qu'elle disait à la fois plus et moins que ce que tu voulais dire (parce que pour moi, au moin, l'intention était évidente, même si la formulation n'était pas parfaite). En expliquant pourquoi, évidemment. Mais ben, on est comme on est.
Effectivement, Gaby a eu raison de faire la mise au point. Et drkm n'a pas tort non plus, quand il nous rappelle que nous sommes lus aussi par des gens pour qui ce n'est pas clair.
Mais je préfère quand Gaby est constructif tout de suite... ;-)
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
Andre Heinen
On Wed, 08 Dec 2004 10:20:11 +0100, drkm wrote:
Gaby, pas constructif ?
Mais si: ;-)
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
On Wed, 08 Dec 2004 10:20:11 +0100, drkm
<usenet.fclcxx@fgeorges.org> wrote:
Gaby, pas constructif ?
Mais si: <m3k6sdojjb.fsf@uniton.integrable-solutions.net>
;-)
--
Andre Heinen
My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
Andre Heinen
On Tue, 7 Dec 2004 21:38:03 +0100, Erwann ABALEA wrote:
On Tue, 7 Dec 2004, Andre Heinen wrote:
Contrairement à la grammaire du langage, les règles relatives au style de programmation ne sont jamais impératives. Lorsque je dis "jamais de using dans un .h", je sous-entends "à moins que tu ne saches vraiment ce que tu fais, et que dans ton cas précis il y ait une bonne raison de faire autrement". Comme c'est un peu long, je ne l'écris pas tout le temps, d'autant plus que je pensais que c'était évident.
Un peu comme le SHOULD NOT de la RFC2119 alors?
C'est exactement ce que j'ai voulu dire à propos des directives using à portée globale dans les en-têtes (et à propos du style de programmation en général).
Mais, comme d'autres l'ont fait remarquer, dans ce cas-ci, le problème était que ma formulation manquait de précision.
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
On Tue, 7 Dec 2004 21:38:03 +0100, Erwann ABALEA
<erwann@abalea.com> wrote:
On Tue, 7 Dec 2004, Andre Heinen wrote:
Contrairement à la grammaire du langage, les règles relatives au
style de programmation ne sont jamais impératives. Lorsque je
dis "jamais de using dans un .h", je sous-entends "à moins que tu
ne saches vraiment ce que tu fais, et que dans ton cas précis il
y ait une bonne raison de faire autrement". Comme c'est un peu
long, je ne l'écris pas tout le temps, d'autant plus que je
pensais que c'était évident.
Un peu comme le SHOULD NOT de la RFC2119 alors?
C'est exactement ce que j'ai voulu dire à propos des directives
using à portée globale dans les en-têtes (et à propos du style de
programmation en général).
Mais, comme d'autres l'ont fait remarquer, dans ce cas-ci, le
problème était que ma formulation manquait de précision.
--
Andre Heinen
My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
On Tue, 7 Dec 2004 21:38:03 +0100, Erwann ABALEA wrote:
On Tue, 7 Dec 2004, Andre Heinen wrote:
Contrairement à la grammaire du langage, les règles relatives au style de programmation ne sont jamais impératives. Lorsque je dis "jamais de using dans un .h", je sous-entends "à moins que tu ne saches vraiment ce que tu fais, et que dans ton cas précis il y ait une bonne raison de faire autrement". Comme c'est un peu long, je ne l'écris pas tout le temps, d'autant plus que je pensais que c'était évident.
Un peu comme le SHOULD NOT de la RFC2119 alors?
C'est exactement ce que j'ai voulu dire à propos des directives using à portée globale dans les en-têtes (et à propos du style de programmation en général).
Mais, comme d'autres l'ont fait remarquer, dans ce cas-ci, le problème était que ma formulation manquait de précision.
-- Andre Heinen My address, rot13-encoded: n qbg urvara ng rhebcrnayvax qbg pbz
Gabriel Dos Reis
writes:
| Gabriel Dos Reis wrote: | > Andre Heinen writes: | | [...] | > | dis "jamais de using dans un .h", je sous-entends "à moins que tu | > | ne saches vraiment ce que tu fais, et que dans ton cas précis il | > | y ait une bonne raison de faire autrement". Comme c'est un peu | | > En français, « éviter » se rapproche plus de ça que « jamais | ». | | En informatique professionnelle, toutes les « guidelines » de | programmation commence par une règle d'or : on peut toujours violer la | règle si c'est justifié. André a présenté une des règles, non les | « guidelines » complètes. Il va de soi pour un professionnel qu'il y | a | d'autres règles. Et que la règle d'or s'y trouve. On ne va pas | s'emmerder avec une verbosité inutile pour des gens qui s'y | connaissent | en génie logicielle.
Lorsque la prétention est à la hauteur de la compétence.
-- Gaby
kanze@gabi-soft.fr writes:
| Gabriel Dos Reis wrote:
| > Andre Heinen <nospam@nospam.invalid> writes:
|
| [...]
| > | dis "jamais de using dans un .h", je sous-entends "à moins que tu
| > | ne saches vraiment ce que tu fais, et que dans ton cas précis il
| > | y ait une bonne raison de faire autrement". Comme c'est un peu
|
| > En français, « éviter » se rapproche plus de ça que « jamais
| ».
|
| En informatique professionnelle, toutes les « guidelines » de
| programmation commence par une règle d'or : on peut toujours violer la
| règle si c'est justifié. André a présenté une des règles, non les
| « guidelines » complètes. Il va de soi pour un professionnel qu'il y
| a
| d'autres règles. Et que la règle d'or s'y trouve. On ne va pas
| s'emmerder avec une verbosité inutile pour des gens qui s'y
| connaissent
| en génie logicielle.
Lorsque la prétention est à la hauteur de la compétence.
| Gabriel Dos Reis wrote: | > Andre Heinen writes: | | [...] | > | dis "jamais de using dans un .h", je sous-entends "à moins que tu | > | ne saches vraiment ce que tu fais, et que dans ton cas précis il | > | y ait une bonne raison de faire autrement". Comme c'est un peu | | > En français, « éviter » se rapproche plus de ça que « jamais | ». | | En informatique professionnelle, toutes les « guidelines » de | programmation commence par une règle d'or : on peut toujours violer la | règle si c'est justifié. André a présenté une des règles, non les | « guidelines » complètes. Il va de soi pour un professionnel qu'il y | a | d'autres règles. Et que la règle d'or s'y trouve. On ne va pas | s'emmerder avec une verbosité inutile pour des gens qui s'y | connaissent | en génie logicielle.
Lorsque la prétention est à la hauteur de la compétence.
-- Gaby
Gabriel Dos Reis
drkm writes:
| writes: | | > Gabriel Dos Reis wrote: | | >> Andre Heinen writes: | | > [...] | | >> | dis "jamais de using dans un .h", je sous-entends "à moins que tu | >> | ne saches vraiment ce que tu fais, et que dans ton cas précis il | >> | y ait une bonne raison de faire autrement". Comme c'est un peu | | >> En français, « éviter » se rapproche plus de ça que « jamais | > ». | | > En informatique professionnelle, toutes les « guidelines » de | > programmation commence par une règle d'or : on peut toujours violer la | > règle si c'est justifié. André a présenté une des règles, non les | > « guidelines » complètes. Il va de soi pour un professionnel qu'il y | > a | > d'autres règles. Et que la règle d'or s'y trouve. On ne va pas | > s'emmerder avec une verbosité inutile pour des gens qui s'y | > connaissent | > en génie logicielle. | | Mais lorsque je vois « jamais de using dans un .h », je comprends | qu'il ne faut jamais utiliser le mot-clef dans un en-tête. C'est | quand même loin de l'objectif.
Ces soit-disant « guidelines » sont en règle générale présentées comme « éviter » (« avoid ») et non « jamais » (« never ») par ceux qui les comprenent.
| Je me disais bien qu'André voulait dire quelque chose d'un peu | différent, mais parceque je connaissais la règle. Ceux qui ne la | connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à | qui est destinée l'énonciation de cette règle si ce n'est à ceux qui | ne la connaissent pas ?
Ceux qui ont lu et compris le thread ont eu une idée de la réponse à cette question.
Mais le fanatique invoquera probablement « professionnel ».
-- Gaby
drkm <usenet.fclcxx@fgeorges.org> writes:
| kanze@gabi-soft.fr writes:
|
| > Gabriel Dos Reis wrote:
|
| >> Andre Heinen <nospam@nospam.invalid> writes:
|
| > [...]
|
| >> | dis "jamais de using dans un .h", je sous-entends "à moins que tu
| >> | ne saches vraiment ce que tu fais, et que dans ton cas précis il
| >> | y ait une bonne raison de faire autrement". Comme c'est un peu
|
| >> En français, « éviter » se rapproche plus de ça que « jamais
| > ».
|
| > En informatique professionnelle, toutes les « guidelines » de
| > programmation commence par une règle d'or : on peut toujours violer la
| > règle si c'est justifié. André a présenté une des règles, non les
| > « guidelines » complètes. Il va de soi pour un professionnel qu'il y
| > a
| > d'autres règles. Et que la règle d'or s'y trouve. On ne va pas
| > s'emmerder avec une verbosité inutile pour des gens qui s'y
| > connaissent
| > en génie logicielle.
|
| Mais lorsque je vois « jamais de using dans un .h », je comprends
| qu'il ne faut jamais utiliser le mot-clef dans un en-tête. C'est
| quand même loin de l'objectif.
Ces soit-disant « guidelines » sont en règle générale présentées comme
« éviter » (« avoid ») et non « jamais » (« never ») par ceux qui les
comprenent.
| Je me disais bien qu'André voulait dire quelque chose d'un peu
| différent, mais parceque je connaissais la règle. Ceux qui ne la
| connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à
| qui est destinée l'énonciation de cette règle si ce n'est à ceux qui
| ne la connaissent pas ?
Ceux qui ont lu et compris le thread ont eu une idée de la réponse à
cette question.
Mais le fanatique invoquera probablement « professionnel ».
| writes: | | > Gabriel Dos Reis wrote: | | >> Andre Heinen writes: | | > [...] | | >> | dis "jamais de using dans un .h", je sous-entends "à moins que tu | >> | ne saches vraiment ce que tu fais, et que dans ton cas précis il | >> | y ait une bonne raison de faire autrement". Comme c'est un peu | | >> En français, « éviter » se rapproche plus de ça que « jamais | > ». | | > En informatique professionnelle, toutes les « guidelines » de | > programmation commence par une règle d'or : on peut toujours violer la | > règle si c'est justifié. André a présenté une des règles, non les | > « guidelines » complètes. Il va de soi pour un professionnel qu'il y | > a | > d'autres règles. Et que la règle d'or s'y trouve. On ne va pas | > s'emmerder avec une verbosité inutile pour des gens qui s'y | > connaissent | > en génie logicielle. | | Mais lorsque je vois « jamais de using dans un .h », je comprends | qu'il ne faut jamais utiliser le mot-clef dans un en-tête. C'est | quand même loin de l'objectif.
Ces soit-disant « guidelines » sont en règle générale présentées comme « éviter » (« avoid ») et non « jamais » (« never ») par ceux qui les comprenent.
| Je me disais bien qu'André voulait dire quelque chose d'un peu | différent, mais parceque je connaissais la règle. Ceux qui ne la | connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à | qui est destinée l'énonciation de cette règle si ce n'est à ceux qui | ne la connaissent pas ?
Ceux qui ont lu et compris le thread ont eu une idée de la réponse à cette question.
Mais le fanatique invoquera probablement « professionnel ».
-- Gaby
Gabriel Dos Reis
writes:
| Andre Heinen wrote: | > On 07 Dec 2004 14:20:48 +0100, Gabriel Dos Reis | > wrote: | | > >Vraiment ? | | > Donne-nous donc un exemple, au lieu de poser des énigmes... | | Ça ne serait pas Gaby s'il faisait quelque chose qui puisse aider | quelqu'un, à la place de critiquer.
ôte la poutre de tes yeux avant de...
Et accessoirement, essaie de faire la différence entre « critiquer » et « poser des questions ».
[...]
| Quelqu'un de constructif aurait signalé que ton énoncée manquait de | précision, et qu'elle disait à la fois plus et moins que ce que tu
Quelqu'un doté d'une cervelle aurait compris que la question était constructive, puisque'elle est destinée à amener l'énonciateur de la règle en question à préciser sa pensée.
-- Gaby
kanze@gabi-soft.fr writes:
| Andre Heinen wrote:
| > On 07 Dec 2004 14:20:48 +0100, Gabriel Dos Reis
| > <gdr@integrable-solutions.net> wrote:
|
| > >Vraiment ?
|
| > Donne-nous donc un exemple, au lieu de poser des énigmes...
|
| Ça ne serait pas Gaby s'il faisait quelque chose qui puisse aider
| quelqu'un, à la place de critiquer.
ôte la poutre de tes yeux avant de...
Et accessoirement, essaie de faire la différence entre « critiquer »
et « poser des questions ».
[...]
| Quelqu'un de constructif aurait signalé que ton énoncée manquait de
| précision, et qu'elle disait à la fois plus et moins que ce que tu
Quelqu'un doté d'une cervelle aurait compris que la question était
constructive, puisque'elle est destinée à amener l'énonciateur de la
règle en question à préciser sa pensée.
| Andre Heinen wrote: | > On 07 Dec 2004 14:20:48 +0100, Gabriel Dos Reis | > wrote: | | > >Vraiment ? | | > Donne-nous donc un exemple, au lieu de poser des énigmes... | | Ça ne serait pas Gaby s'il faisait quelque chose qui puisse aider | quelqu'un, à la place de critiquer.
ôte la poutre de tes yeux avant de...
Et accessoirement, essaie de faire la différence entre « critiquer » et « poser des questions ».
[...]
| Quelqu'un de constructif aurait signalé que ton énoncée manquait de | précision, et qu'elle disait à la fois plus et moins que ce que tu
Quelqu'un doté d'une cervelle aurait compris que la question était constructive, puisque'elle est destinée à amener l'énonciateur de la règle en question à préciser sa pensée.
-- Gaby
drkm
Gabriel Dos Reis writes:
drkm writes:
| Je me disais bien qu'André voulait dire quelque chose d'un peu | différent, mais parceque je connaissais la règle. Ceux qui ne la | connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à | qui est destinée l'énonciation de cette règle si ce n'est à ceux qui | ne la connaissent pas ?
Ceux qui ont lu et compris le thread ont eu une idée de la réponse à cette question.
Mais le fanatique invoquera probablement « professionnel ».
Je ne te suis pas, là.
--drkm
Gabriel Dos Reis <gdr@integrable-solutions.net> writes:
drkm <usenet.fclcxx@fgeorges.org> writes:
| Je me disais bien qu'André voulait dire quelque chose d'un peu
| différent, mais parceque je connaissais la règle. Ceux qui ne la
| connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à
| qui est destinée l'énonciation de cette règle si ce n'est à ceux qui
| ne la connaissent pas ?
Ceux qui ont lu et compris le thread ont eu une idée de la réponse à
cette question.
Mais le fanatique invoquera probablement « professionnel ».
| Je me disais bien qu'André voulait dire quelque chose d'un peu | différent, mais parceque je connaissais la règle. Ceux qui ne la | connaissaient pas on pu ne pas faire la correction eux-mêmes. Et à | qui est destinée l'énonciation de cette règle si ce n'est à ceux qui | ne la connaissent pas ?
Ceux qui ont lu et compris le thread ont eu une idée de la réponse à cette question.
Mais le fanatique invoquera probablement « professionnel ».
Je ne te suis pas, là.
--drkm
drkm
Andre Heinen writes:
On Wed, 08 Dec 2004 10:20:11 +0100, drkm wrote:
Gaby, pas constructif ?
Mais si: ;-)
Je pense qu'il y a quelque chose que je n'ai pas saisi ...
--drkm
Andre Heinen <nospam@nospam.invalid> writes:
On Wed, 08 Dec 2004 10:20:11 +0100, drkm
<usenet.fclcxx@fgeorges.org> wrote:
Gaby, pas constructif ?
Mais si: <m3k6sdojjb.fsf@uniton.integrable-solutions.net>
;-)
Je pense qu'il y a quelque chose que je n'ai pas saisi ...