lang:c:syntaxe:heritage
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| lang:c:syntaxe:heritage [2017/08/08 17:40] – Ajout de "Cast vers un parent d'un héritage multiple" root | lang:c:syntaxe:heritage [2017/11/23 23:42] (Version actuelle) – supprimée root | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====Méthodes statiques dans une interface==== | ||
| - | Normalement, | ||
| - | |||
| - | [[http:// | ||
| - | |||
| - | L' | ||
| - | <code cpp> | ||
| - | template < typename T > | ||
| - | class StaticInterface | ||
| - | { | ||
| - | public: | ||
| - | StaticInterface() | ||
| - | { | ||
| - | int(*fooCheck)(int) | ||
| - | bool(*barCheck)(bool) = T::bar; | ||
| - | } | ||
| - | }; | ||
| - | </ | ||
| - | |||
| - | Une implémentation de la classe : | ||
| - | <code cpp> | ||
| - | class DerivedClass : public StaticInterface< | ||
| - | { | ||
| - | public: | ||
| - | static int foo(int | ||
| - | static bool bar(bool param){ return 20; } | ||
| - | }; | ||
| - | </ | ||
| - | |||
| - | ====Cast vers un parent d'un héritage multiple==== | ||
| - | {{ : | ||
| - | |||
| - | Depuis '' | ||
| - | |||
| - | Il ne faut surtout pas faire (ci-dessous). Sinon, les méthodes virtuelles (au minimum) appelleront n' | ||
| - | <code cpp> | ||
| - | Parent2* p = reinterpret_cast< | ||
| - | </ | ||
| - | |||
| - | Il faut faire (ci-dessous). Puis un '' | ||
| - | <code cpp> | ||
| - | Parent2* p = static_cast< | ||
| - | </ | ||
lang/c/syntaxe/heritage.1502206806.txt.gz · Dernière modification : de root
