1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| template <typename Type>
class Z :public ZBase
{
public:
/* note que cela fonctionne aussi parfaitement avec des références
* et que l'idéal serait carrément de travailler avec des pointeurs
* intelligents s'il faut vraiment que l'objet référencé soit un pointeur ;)
*/
Z(Type * pointer):pointer_(pointer){}
/* et l'on peut même envisager de renvoyer l'objet référencé,
* sous a forme d'une référence (constante ou non) ou d'un pointeur ;)
*
* ...Après avoir pu déterminer si Z manipule un A, un B, un C ou un D
*/
/* const */ Type & referedObject() /* const */
{
return *pointer_;
}
private:
typeDeRetour doSomething() /* const */
{
return MyHelper<Type>()(*pointer_);
}
Type * pointer_;
}; |
Partager