Auteur: Edgar Bonet Date: À: guilde Sujet: Re: question de cpp
Bonsoir !
Patrick Dupré a écrit : > J'ai une classe [...] template <class Stepper> void odeint()
Ceci n'est pas une classe. C'est un patron (« template ») de fonction
(ou de méthode, il manque le contexte). C'est une sorte de modèle qui
permet au compilateur de construire une infinité de fonctions. Il
construit ces fonctions à la demande, à chaque fois que tu les utilises
avec une classe “Stepper” différente.
> Souhaitant mettre cette classe dans un fichier de classes
Si tu veux mettre ça dans une unité de compilation qui lui est propre
(typiquement un fichier .cpp), ce n'est pas possible. Tu peux définir
une fonction dans une unité de compilation, mais pas une infinité de
fonctions. Tout ce qui utilise le mot clef « template » doit être dans
un fichier d'en-tête, afin d'être vu dans l'unité de compilation qui
l'utilise.