Bonjour,
J'ai récemment appris à faire des template et je suis légèrement bloqué.
J'ai une classe bouton avec un template :
DONNEE1 est le type de l'argument qui sera utilisée pour FONCTION1
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
DONNEE2 est le type de l'argument qui sera utilisée pour FONCTION2
Mais quand il n'y a pas d'argument, j'aimerais bien définir :
Bouton<void, void, ma_fonction1, ma_fonction2>
Ou quand il n'y pas une des deux fonction,
Bouton<void, void, void, ma_fonction2>
Mais quand je fait :
il le compilateur me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
NB : j'ai mis 'int' pour vérifié si ce n'est pas pas 'void' qui posait problèmeC:\Users\Neckara\Desktop\Patcher (sources)\src\..\include\Bouton.h|107|error: invalid use of incomplete type 'class Bouton<int, DONNEE2, FONCTION1, FONCTION2>'|
C:\Users\Neckara\Desktop\Patcher (sources)\src\..\include\Bouton.h|9|error: declaration of 'class Bouton<int, DONNEE2, FONCTION1, FONCTION2>'|
||=== Build finished: 2 errors, 0 warnings ===|
Le deuxième problème qui se pose, c'est que j'ai une classe Principale qui a deux sous-classes Bouton (jouer et desinstaller) ainsi qu'une sous-classe Serveur (gère les mises à jours).
Mais il faut que Serveur ai un pointeur de type Bouton sur chacun des deux Bouton de Principal.
Or la fonction a exécuter par le Bouton jouer est une méthode de Principal.
J'ai donc :
Dans Principal (les void * sont là parce que je n'ai pas encore réussi à mettre des void)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Mais pour définir un pointeur Jouer il faut que je mettre dans Serveur :
Mais Serveur ne connait pas Principal puisque Serveur est une sous-classe de Principal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Si je met l'en-tête de Principal au début de celle de Serveur, ceci ne marchera pas puisque l'en-tête de Principal aura besoin de celle de Serveur avant, c'est un peu le serpent qui se mort la queue.
J'ai tenté de faire un :
Mais comme attendu ceci n'a pas marché...
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Auriez-vous des idées?

 

 
		
		 
         
 

 
			
			 
  
  
 
 
 
 
   
 



 
				 Template, classe Bouton
 Template, classe Bouton
				 Répondre avec citation
  Répondre avec citation

 
  
 
 
			 Envoyé par Neckara
 Envoyé par Neckara
					
Partager