Un projet, 3 fichiers, #include et ou c'est que je me gourre ? [ C++ ] - C++ - Programmation
Marsh Posté le 18-03-2004 à 18:01:44
c'est quoi ce .exe
g++ -W -Wall -std=c++98 -pedantic test.cpp locales.cpp -o test
./test
Marsh Posté le 18-03-2004 à 18:06:28
faisons un peu mieux au niveau du code
Code :
|
Code :
|
Marsh Posté le 18-03-2004 à 18:15:16
Taz a écrit : c'est quoi ce .exe |
C'est pour du multiplateforme
Taz a écrit : |
Si je ne fais pas compiler locales.cpp en effet il pourrait y avoir un probleme
Quand au -W -Wall -std=c++98 -pedantic comme ca n'est certainement pas la pour faire joli, on va voir ce que man en pense.
Par contre pour tes modifications... Aurais-tu l'obligence de m'expliquer leurs objectif de facon plus detaille ? J'ai deja vu passer le coup des #ifndef #define qque part (en cherchant sur un autre sujet) mais ca ne m'a pas laisse un souvenir imperissable.
Enfin :
Code :
|
J'ai jamais vu ca nulle part comme presentation . Ca sort d'ou ?
Ah euh ... et merci au fait
Marsh Posté le 18-03-2004 à 18:28:55
quand l'accolade de ton constructeur s'ouvre, __tous__ les membres sont déjà construits.
donc on prends par exemple ton membre name.
ta version à toi elle équivaut à
std::string name;
name = "machin"
tu vois tout de suite que
std::string name("machin" ) ça serait mieux
donc la notation que tu vois, c'est pour controler la construction des membres. et ça te permet aussi d'initialiser des membres qui n'ont pas de constructeurs par défaut ou qui sont constants
Marsh Posté le 18-03-2004 à 18:31:06
Vu
Marsh Posté le 18-03-2004 à 18:35:05
et comme tu vois, ça t'évite de faire des opérations inutiles
Marsh Posté le 18-03-2004 à 18:39:27
Je vois je vois.
Marsh Posté le 27-03-2004 à 18:10:03
Taz a écrit : faisons un peu mieux au niveau du code
|
AU sujet de l'utilisation de #ifndef #define #endif, je pense avoir compris l'explication ( http://www.fredosaurus.com/notes-c [...] ifdef.html ) par contre un detail me chagrine, le _H a la fin du nom, c'est necessaire ou juste une convention ?
Marsh Posté le 27-03-2004 à 19:05:54
tu peux mettre ce que tu veux : la seule chose c'est qu'il faut que le symbole soit suffisemment unique pour éviter des collisions (je crois que tous les programmeurs ont un jour écris un Stack.h alors va pas mettre STACK_H)
comme il peut pas y avoir de . on mets des _
un bon compromis est un mélange nomde fichier / date / nom de projet / etc
d'ou mon CILER_LOCALES_H
Marsh Posté le 27-03-2004 à 19:32:56
Taz a écrit : tu peux mettre ce que tu veux : la seule chose c'est qu'il faut que le symbole soit suffisemment unique pour éviter des collisions (je crois que tous les programmeurs ont un jour écris un Stack.h alors va pas mettre STACK_H) |
Compris
Une autre question (j'ai pas mon Stroustup sous la main )
La dedans :
Code :
|
Si je veux remplacer la string par une map, il y a moyen de faire l'affectation directement ? (un equivalent de = "truc" pour les maps)
Marsh Posté le 27-03-2004 à 19:51:52
Taz a écrit : quoi ? |
POur initialiser un string, on peut faire
Code :
|
Peut-on faire quelque chose de comparable avec un map ?
genre
Code :
|
Marsh Posté le 27-03-2004 à 19:59:50
non, tu ne peux pas.
string foo="bar"; -> string foo("bar" );
Marsh Posté le 27-03-2004 à 20:16:57
Taz a écrit : non, tu ne peux pas. |
Dommage
Taz a écrit : |
Sir Yes Sir ! (dur dur d'apprendre )
Marsh Posté le 18-03-2004 à 17:37:44
Attention, l'erreur qui va suivre est probablement stupide, alors si vous avez eu une mauvaise journee et manquez de patience, passez votre chemin
J'essaye de compiler un chti prog compose des 3 fichiers suivants :
main.cpp
locales.h
locales.cpp
le message d'erreur du compilateur (g++) est
/tmp/ccp9ApzV.o(.text+0x3c): In function `main':
: undefined reference to `Entry::Entry[in-charge]()'
/tmp/ccp9ApzV.o(.text+0x4e): In function `main':
: undefined reference to `Entry::GetValue()'
collect2: ld returned 1 exit status
zsh: exit 1 g++ -o test.exe test.cpp
Je ne comprends pas pourquoi la reference a Entry::Entry n'est pas definie. Et ce [in charge], il vient d'ou
---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8