Précédent   Forum des professionnels en informatique > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 21h51   #1
Membre du Club
 
Inscription : septembre 2006
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 143
Points : 44
Points : 44
Par défaut Pb classe template avec Qt

Bonjour,

J'utilse depuis peu Qt 4.x.
Si j'écris
Code :
1
2
3
4
5
6
7
8
 
template <class T>
class MyClass :  public QTcpSocket {
public :
	MyClass(const T& Val = T() ,  QObject *parent = 0) : QTcpSocket(parent) {
 
	}
};
Ca compile sans problème

Si je rajoute la macro OBJECT
Code :
1
2
3
4
5
6
7
8
9
 
template <class T>
class MyClass :  public QTcpSocket {
 	OBJECT
public :
	MyClass(const T& Val = T() ,  QObject *parent = 0) : QTcpSocket(parent) {
 
	}
};
J'obtiens une erreur : "expected unqualified-id before ‘<’ token" sur la ligne qui contient OBJET
1) Je ne sais comment interpréter cette erreur
2) Est-il possible de faire une classe template avec Qt, contenant la maco OBJECT ? Si oui comment ?

Merci d'avance à ceux/celles qui voudront bien me faire part de leurs idées sur ce sujet

Kim
kimlee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 01h45   #2
Membre éclairé
 
Inscription : mars 2009
Messages : 228
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 228
Points : 318
Points : 318
Bonsoir,

Ca ne serait pas plutôt Q_OBJECT?

Ensuite, le mécanisme de moc ne supporte pas directement les templates. Tu ne peux pas "Q_OBJECTer" une classe template.

Regarde le dernier post ici pour trouver des pistes si vraiment(*) tu as besoin de templater :
http://qtfr.org/viewtopic.php?id=10859

(*) Il n'y a pas que la template dans la vie, il y a virtual aussi...
bretus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 07h14   #3
Membre du Club
 
Inscription : septembre 2006
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 143
Points : 44
Points : 44
Par défaut Classe template avce QT

Bonjour,

Merci Bretus pour ta réponse. C'était effectivement Q_OBJECT (au lieu de OBJECT), mais ça ne change pas le problème : il semble qu'il soit impossible de créer une classe template contenant la macro Q_OBJECT.
Je ne suis pas obligé de créer une classe template, mais je trouvais que c'était la solution la plus élégante et parfaitement dans l'esprit du C++.
Par ailleurs, la piste que tu m'as indiquée me semble très astucieuse (J'avais d'ailleurs commencé par tester le passage de SLOTS et SIGNALS en paramètres !!! ). Je vais essayer de la mettre en oeuvre.

Encore Merci.

Kim
kimlee est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h27.


 
 
 
 
Partenaires

Hébergement Web