spécialisation [C++] - C++ - Programmation
Marsh Posté le 31-01-2005 à 23:07:08
partons d'une classe de base genre foo...
Marsh Posté le 31-01-2005 à 23:13:29
moi j'ai pas bien compris ce que tu veux faire. Donne un exemple simple.
Marsh Posté le 31-01-2005 à 23:17:11
Code :
|
Marsh Posté le 31-01-2005 à 23:19:36
ah ben héritage ça marchera superbement. Quand tu spécialises, tu spécialises tout. Cela dit après tu commences à mixer template et virtual, prudence
Marsh Posté le 31-01-2005 à 23:20:17
Justement, le delannoy précise le contraire et je voulais en avoir le coeur net... boulette du petit claude donc ?!
Marsh Posté le 31-01-2005 à 23:22:57
Dans le cas d'une spé de modèle de classe, il est possible de définir des versions spécialisées de certaines fonctions membre, ou ne pas en définir, auquel cas on ferait appel aux fonctions membre du modèle.
Marsh Posté le 31-01-2005 à 23:24:30
donc ce que dit delannoy devrait s'appliquer
Marsh Posté le 31-01-2005 à 23:26:20
Ce que je comprends : Les fonctions membre non spécialisées d'une spécialisation de modèle de classe font appel aux fonctions membre du modèle de classe.
Marsh Posté le 31-01-2005 à 23:28:28
Je ne spécialise pas affiche() dans foo<int,int*>, il n'appelle pourtant pas foo<X,Y>::affiche() pour autant !
Marsh Posté le 31-01-2005 à 23:37:03
tu vois quoi comme relation entre foo<X, Y> et foo<int, int*> à part le nom ?
Marsh Posté le 31-01-2005 à 23:39:39
Et bien d'apres ce que je comprends du delannoy, les fonctions membres de foo<int,int*> sont celle de foo<X,Y> par défaut.
Marsh Posté le 31-01-2005 à 23:42:12
ben non. Tu as d'ailleurs tout un tas de piège comme ça. Tu as :
template<typename T>
class Foo
{
public:
// plein de truc !
};
template<>
class Foo<void>
{
public:
// prends toi ça, y a rien ici !
};
Marsh Posté le 31-01-2005 à 23:46:57
oui, ok pour ton exemple.
Je m'exprime mal. Si dans la classe spécialisée tu rappelles les déclarations des fonctions membre de la classe générique, alors d'apres ce que dis delannoy, le compilateur va chercher l'implémentation des fonctions membre de la classe générique.
Marsh Posté le 31-01-2005 à 23:48:05
Je pense qu'il y a une erreur dans le delannoy. Nos exemples le prouvent.
Marsh Posté le 31-01-2005 à 23:04:04
Je souhaite spécialiser un modèle d'objet sans définir de spécialisation des fonctions membres communes avec le modèle... et bien je n'y arrive pas. Sachant également que je souhaite séparer déclaration et définition pour chaque template.
---------------
Cordialement, Xterm-in'Hate...