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.
| Pour répondre à ta question, je ne vois pas d'exemple où ce soit | une bonne idée de mettre une directive using dans un en-tête. | Bien sûr, ce n'est pas parce que je n'en vois pas qu'il ne peut | pas en exister.
Comment proposes-tu d'utiliser « namespace composition », alors ?
| | Contrairement à la grammaire du langage, les règles relatives au | style de programmation ne sont jamais impératives. Lorsque je
Woaw,
| 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 ».
| long, je ne l'écris pas tout le temps, d'autant plus que je | pensais que c'était évident. | | Pas d'accord?
Non.
-- Gaby
Andre Heinen <nospam@nospam.invalid> writes:
[...]
| Pour répondre à ta question, je ne vois pas d'exemple où ce soit
| une bonne idée de mettre une directive using dans un en-tête.
| Bien sûr, ce n'est pas parce que je n'en vois pas qu'il ne peut
| pas en exister.
Comment proposes-tu d'utiliser « namespace composition », alors ?
|
| Contrairement à la grammaire du langage, les règles relatives au
| style de programmation ne sont jamais impératives. Lorsque je
Woaw,
| 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 ».
| long, je ne l'écris pas tout le temps, d'autant plus que je
| pensais que c'était évident.
|
| Pas d'accord?
| Pour répondre à ta question, je ne vois pas d'exemple où ce soit | une bonne idée de mettre une directive using dans un en-tête. | Bien sûr, ce n'est pas parce que je n'en vois pas qu'il ne peut | pas en exister.
Comment proposes-tu d'utiliser « namespace composition », alors ?
| | Contrairement à la grammaire du langage, les règles relatives au | style de programmation ne sont jamais impératives. Lorsque je
Woaw,
| 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 ».
| long, je ne l'écris pas tout le temps, d'autant plus que je | pensais que c'était évident. | | Pas d'accord?
Non.
-- Gaby
drkm
Andre Heinen writes:
On 07 Dec 2004 14:20:48 +0100, Gabriel Dos Reis wrote:
Vraiment ?
Donne-nous donc un exemple, au lieu de poser des énigmes...
namespace drkm { using namespace stuff_I_reuse ; class MyStuff { } ; }
Maintenant, je ne vois pas d'utilité à un « namespace std ; » au niveau de l'espace de nommage global dans un en-tête.
--drkm
Andre Heinen <nospam@nospam.invalid> writes:
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...
namespace drkm {
using namespace stuff_I_reuse ;
class MyStuff {
} ;
}
Maintenant, je ne vois pas d'utilité à un « namespace std ; » au
niveau de l'espace de nommage global dans un en-tête.
Est-ce qu'une formulation du type "jamais de namespace à portée de fichier dans un .h" te conviendrait plus ?
-- Loïc
Gabriel Dos Reis
drkm writes:
| Andre Heinen writes: | | > On 07 Dec 2004 14:20:48 +0100, Gabriel Dos Reis | > wrote: | | >>Vraiment ? | | > Donne-nous donc un exemple, au lieu de poser des énigmes... | | namespace drkm { | using namespace stuff_I_reuse ; | class MyStuff { | } ; | } | | Maintenant, je ne vois pas d'utilité à un « namespace std ; » au | niveau de l'espace de nommage global dans un en-tête.
Entièrement d'accord.
-- Gaby
drkm <usenet.fclcxx@fgeorges.org> writes:
| Andre Heinen <nospam@nospam.invalid> writes:
|
| > 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...
|
| namespace drkm {
| using namespace stuff_I_reuse ;
| class MyStuff {
| } ;
| }
|
| Maintenant, je ne vois pas d'utilité à un « namespace std ; » au
| niveau de l'espace de nommage global dans un en-tête.
| Andre Heinen writes: | | > On 07 Dec 2004 14:20:48 +0100, Gabriel Dos Reis | > wrote: | | >>Vraiment ? | | > Donne-nous donc un exemple, au lieu de poser des énigmes... | | namespace drkm { | using namespace stuff_I_reuse ; | class MyStuff { | } ; | } | | Maintenant, je ne vois pas d'utilité à un « namespace std ; » au | niveau de l'espace de nommage global dans un en-tête.
Entièrement d'accord.
-- Gaby
Gabriel Dos Reis
Loïc Joly writes:
| Gabriel Dos Reis wrote: | > Andre Heinen writes: | > | => jamais de using dans un .h | > Vraiment ? | | Est-ce qu'une formulation du type "jamais de namespace à portée de | fichier dans un .h" te conviendrait plus ? |
Oui, je peux vivre avec :-)
-- Gaby
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
| Gabriel Dos Reis wrote:
| > Andre Heinen <nospam@nospam.invalid> writes:
| > | => jamais de using dans un .h
| > Vraiment ?
|
| Est-ce qu'une formulation du type "jamais de namespace à portée de
| fichier dans un .h" te conviendrait plus ?
|
| Gabriel Dos Reis wrote: | > Andre Heinen writes: | > | => jamais de using dans un .h | > Vraiment ? | | Est-ce qu'une formulation du type "jamais de namespace à portée de | fichier dans un .h" te conviendrait plus ? |
Oui, je peux vivre avec :-)
-- Gaby
Erwann ABALEA
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?
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Moi si je devais voter pour ce forum, je serais d'accord pour virer tous les abrutis!!! -+-DF in Guide du Neuneu Usenet - Ce neuneu s'autodétruira dans 1 mn -+-
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?
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
Moi si je devais voter pour ce forum, je serais d'accord pour
virer tous les abrutis!!!
-+-DF in Guide du Neuneu Usenet - Ce neuneu s'autodétruira dans 1 mn -+-
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?
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Moi si je devais voter pour ce forum, je serais d'accord pour virer tous les abrutis!!! -+-DF in Guide du Neuneu Usenet - Ce neuneu s'autodétruira dans 1 mn -+-
drkm
Gabriel Dos Reis writes:
drkm writes:
| Maintenant, je ne vois pas d'utilité à un « namespace std ; » au ^^^
| niveau de l'espace de nommage global dans un en-tête.
Entièrement d'accord.
Et à un « using namespace std ; » également ?-)
--drkm
Gabriel Dos Reis <gdr@integrable-solutions.net> writes:
drkm <usenet.fclcxx@fgeorges.org> writes:
| Maintenant, je ne vois pas d'utilité à un « namespace std ; » au
^^^
| niveau de l'espace de nommage global dans un en-tête.
| Maintenant, je ne vois pas d'utilité à un « namespace std ; » au ^^^
| niveau de l'espace de nommage global dans un en-tête.
Entièrement d'accord.
Et à un « using namespace std ; » également ?-)
--drkm
kanze
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.
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 ». Un « directif de using » et « portée globale@», parce que je ne crois pas que c'était ton intention d'intérdire quelque chose comme :
class C : public B { public: using f() ; // ... } ;
ni même l'utilisation d'un using à l'intérieur d'une fonction inline.
De même « en-tête », parce que je suis certain que tu n'admets pas plus les directifs using dans un .hh ou un .hpp.
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.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
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.
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 ». Un « directif de using » et « portée
globale@», parce que je ne crois pas que c'était ton intention
d'intérdire quelque chose comme :
class C : public B
{
public:
using f() ;
// ...
} ;
ni même l'utilisation d'un using à l'intérieur d'une fonction
inline.
De même « en-tête », parce que je suis certain que tu n'admets pas
plus
les directifs using dans un .hh ou un .hpp.
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.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
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.
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 ». Un « directif de using » et « portée globale@», parce que je ne crois pas que c'était ton intention d'intérdire quelque chose comme :
class C : public B { public: using f() ; // ... } ;
ni même l'utilisation d'un using à l'intérieur d'une fonction inline.
De même « en-tête », parce que je suis certain que tu n'admets pas plus les directifs using dans un .hh ou un .hpp.
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.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
kanze
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 l es « 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.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
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 l es
« 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.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
| 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 l es « 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.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
drkm
writes:
Quelqu'un de constructif aurait signalé que ton énoncée manquait de précision
Gaby, pas constructif ?
--drkm
kanze@gabi-soft.fr writes:
Quelqu'un de constructif aurait signalé que ton énoncée manquait de
précision