bonjour

j'ai le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template <class T>
class XX {
	T ref;
public:
	XX(T ref) : ref(ref){
	};
	~XX(){
		//delete ref;
	}
};
 
template <class T>
class XX<T*> {
	T* ref;
public:
	XX(T* ref) : ref(ref){
	};
	~XX(){
		delete ref;
	}
};
j'aimerais savoir si je pourrais pas spécialiser le destructeur dans la première classe pour simplifier
en fait j'ai un classe qui as beaucoup de code et ça m'ennui de la spécialiser en deux classes...

évidement je pourrais faire une classe de base avec un destructeur virtuel et faire la spécialisation au dessus
mais si c'est possible dans la première classe ....

sinon j'avais pensé a faire cela

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
template <class T>
class YY {
	T ref;
public:
	YY(T ref) : ref(ref){
	};
	virtual ~YY(){
		//delete ref;
	}
	void toto(){};
};
 
template <class T>
class YY<T*> : public YY<T>{
	T* ref;
public:
	YY(T* ref) : ref(ref){
	};
	virtual ~YY(){
		delete ref;
	}
};
mais ça passe pas