URL: https://linuxfr.org/forums/programmation-c/posts/s%C3%A9paration-codeen-t%C3%AAte Title: Séparation code/en-tête. Authors: Vador Dark Date: 2005年12月19日T18:32:57+01:00 Tags: Score: 0 Bonjour, Je me lance seulement dans le c++. Jusque là, pour gérer les différentes parties de mon projet, je n'arrivais pas à avoir plusieurs cpp. J'avais une solution "crado" qui consistait à mettre le code dans les .h. Mais bon, le problème est qu'il recompile la totalité du projet à chaque fois, puis bon j'aimerai bien faire quelque chose de propre :). Je précise que j'utilise kdevelop. J'ai commencé par tenter de séparer un .cpp et un .h avec un fichier très simple, et j'obtiens ceci: Function.h: #ifndef H_FUNCTION #define H_FUNCTION using namespace std; class Convert { £spaces£ £/spaces£//public: £spaces£ £/spaces£std::string Hex(unsigned char Dec); £spaces£ £/spaces£ £spaces£ £/spaces£std::string Bin(unsigned char Dec); }; #endif Function.cpp: #include "Function.h" £spaces£ £/spaces£std::string Convert::Hex(unsigned char Dec) £spaces£ £/spaces£{ std::string result; £spaces£ £/spaces£std::string HexVal="0123456789ABCDEF"; £spaces£ £/spaces£ £spaces£ £/spaces£result= HexVal.c_str()[Dec/16]; £spaces£ £/spaces£result += HexVal.c_str()[Dec%16]; £spaces£ £/spaces£return result; £spaces£ £/spaces£} £spaces£ £/spaces£std::string Convert::Bin(unsigned char Dec) £spaces£ £/spaces£{ £spaces£ £/spaces£std::string Result; £spaces£ £/spaces£int bit=128; £spaces£ £/spaces£unsigned char Dec2=Dec; £spaces£ £/spaces£while (bit!=0) £spaces£ £/spaces£{ £spaces£ £/spaces£ £spaces£ £/spaces£if(Dec2/bit) £spaces£ £/spaces£{ £spaces£ £/spaces£Result+="1"; £spaces£ £/spaces£Dec2=Dec2%bit; £spaces£ £/spaces£}else £spaces£ £/spaces£Result+="0"; £spaces£ £/spaces£ £spaces£ £/spaces£bit /=2; £spaces£ £/spaces£ £spaces£ £/spaces£} £spaces£ £/spaces£return Result; £spaces£ £/spaces£} Lors de la compilation de Function.cpp, j'obtiens ceci: [...] /home/ledev/68hc/simu/src/Function.h:28: error: using-declaration for non-member at class scope /home/ledev/68hc/simu/src/Function.h:28: error: expected `;' before "Hex" /home/ledev/68hc/simu/src/Function.h:30: error: using-declaration for non-member at class scope /home/ledev/68hc/simu/src/Function.h:30: error: expected `;' before "Bin" [...] /home/ledev/68hc/simu/src/Function.h:32:7: warning: no newline at end of file /home/ledev/68hc/simu/src/Function.cpp:3: error: expected constructor, destructor, or type conversion before "Convert" /home/ledev/68hc/simu/src/Function.cpp:3: error: expected `,' or `;' before "Convert" /home/ledev/68hc/simu/src/Function.cpp:11: error: expected constructor, destructor, or type conversion before "Convert" /home/ledev/68hc/simu/src/Function.cpp:11: error: expected `,' or `;' before "Convert" *** Sortie avec l'état : 2 *** J'ai tenté de comparer avec les sources de divers projets, mais il me semble n'avoir rien oublié. Quelqu'un aurai une idée? Merci :). PS: Désolé d'avoir laissé les retours-chariots, mais je n'arrivais pas à avoir de retour à la ligne sans cela(la balise br étant activée). J'ai jugé plus lisible cette solution :).

AltStyle によって変換されたページ (->オリジナル) /