Jeudi 21 Novembre 2024 | Présentation de Marie, Présentation de Marie au temple, par Joachim et Anne. Elle est donnée au Seigneur. / Christ, Roi de l'Univers
Chiffre 2Chiffre 9Chiffre 3Chiffre 5Chiffre 6Chiffre 7
depuis le 13/04/2012

Expressions - Informations - Partage

- Le C++ -


   
01 02 03

Déclaration de classe

class GestionCours
 {
  private:
   string m_sSujet;
   string m_sTitre;
   string m_sContenu;
  public:
   GestionCours (string sujet, string titre, string contenu);
   string GetSujet () const;
   string GetTitre () const;
   string GetContenu () const;
 };
 

Templates

Écrire du code suppose la nécessité de recommencer et quelque fois les mêmes. Ainsi les templates permettent d'écrire du code générique, utilisable pour une famille de fonctions ou de classes (diffèrent quelque fois par la valeur de leur paramètres).

 // La fonction template Max peut être appelée avec tout type copiable
 // et comparable avec l'opérateur <.
template <typename T> T Max(T a, T b)
{
    return a < b ? b : a;
}
 
# include <string>
int main() // fonction main { int i = Max(3, 5); char c = Max('e', 'b'); std::string s = Max(std::string("hello"), std::string("world")); float f = Max<float>(1, 2.2f); return 0; }

Dans la ligne float f = Max<float>(1, 2.2f), on doit explicitement donner le type float pour le type paramétré T car le compilateur ne déduit pas le type de T lorsqu'on passe en même temps un int (1) et un float (2.2f).

Exemple de template de spécialisation à plusieurs instanciations.

 template< size_t N >
struct CalculFactoriel { static size_t Fact = N * CalculFactoriel< N - 1 >;
}; template<0>struct CalculFactoriel<0>{ static size_t Fact = 1 ; };

Le mot clé virtual, placé devant le prototype de la fonction, indique au compilateur qu'une redéfinition de la fonction est possible dans une classe dérivée. Il suffit alors de dériver une classe et de définir une nouvelle fonction de même signature (même nom, paramètres compatibles ). Ainsi l'appel de cette fonction sur un objet dont on ignore le type, mais accédé en tant qu'objet de la classe de base, pourra donner lieu à l'appel de la fonction définie dans la classe dérivée.


Ma Zone Web :: Expressions - Informations - Partage, ©2012-2024  | MEZOTICAM® Camille FRONTON