@ptyxs: c'est noté.
Tant que tu es là, tu es peut-être en mesure de m'aider pour autre chose. Je ne crois pas que créer un autre sujet soit judicieux. J'aurais pu t'envoyer un message privé.
Voilà mon problème. J'en bave pour résoudre certains exos, à cause des fichiers d'en-têtes, des makefile, de la façon d'intégrer un template à un programme... Ce sont des choses qui ne sont quasiment jamais expliquées dans le livre.
Au chapitre 5, je m'étais cassé les dents sur le makefile. À l'exercice 5-2, j'en étais arrivé à copier les fonctions de 5 ou 6 fichiers fournis par les auteurs dans un gros
main car j'étais incapable de créer un petit fichier *.cc et de le raccorder aux autres. Après avoir perdu pas mal de temps, j'ai lu ce
tutoriel. Même s'il n'est pas exhaustif, il m'a quand même permis de juste coder ce qui était nécessaire et de modifier les makefiles des auteurs en conséquence (donc ça été bon au niveau des makefiles et des compilations pour le chapitre 5, 6 et 7).
Arrive le chapitre 8, et là je me recasse les dents sur les fichiers d'en-têtes à cause des templates. Les auteurs n'expliquent même pas pourquoi ceux-ci sont placés dans des *.h. Pour résoudre l'exo 8-1, j'ai dû créé un répertoire où j'ai copié 8 fichiers précédemment vus pour y ajouter mon propre analysis.h. Je suis incapable de juste créer analysis.h et de modifier le makefile des auteurs pour que la compilation s'opère. À l'exercice 8-3, je crée une fonction
template <class It> double median(It begin, It end), elle marche, mais pas si je "templétise" aussi le
double (même si double est donné à une variable lors de l'appel). Et je serais incapable d'intégrer cette fonction à grade.h, Student_infos.h... sans les copier à part dans un répertoire. De toute façon, même en les copiant à part, ça ne marche pas.
À l'exo 9, je n'arrive pas à faire lier le nouveau xref à split.h. Je donne l'en-tête split.h à xref-nv.cc mais ce dernier ne reconnait pas la fonction split(). Même en copiant le contenu de split.h (qui contient le template) dans xref-nv.cc, ça ne fonctionne pas: split() n'est toujours pas trouvé.
Je suis dépassé.
(
decelerated c++) Ça se soigne?
@ptyxs: comment avais-tu fait à l'époque? Connaissant déjà le C, les makefile n'avaient plus de secrets pour toi? Mais il me semble que les templates sont spécifiques à C++. Pourquoi je bloque quand j'essaie de compiler des programmes composés de plusieurs fichiers avec des templates?
Partager