begin process at 2012 05 30 22:49:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

virtual template


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

virtual template

vendredi 25 novembre 2005 à 03:10:06 | virtual template

Guillemouze

Salut,
je voudrais savoir si il est possible de faire des fonctions virtuelles template. voici mon cas :

class Type {
    void toto(int i) {}
};
class Interface {   
    virtual template<class _T> void fonction(_T param) = 0;
};
template<class _T>
class Enfant : public Interface {
    _T m_t;
    template<class _E> void fonction(_E param) {m_t.toto(param); }
}
Interface* en = new Enfant<Type>();

mais il accepte pas le virtual et le template.
bien sur je pourrai mettre l'interface en template :

class Type {
    void toto(int i) {}
};
template<class _T>
class Interface {   
    virtual void fonction(_T param) = 0;
};
template<class _T, class _E>
class Enfant : public Interface<_E> {
    _T m_t;
    void fonction(_E param) {m_t.toto(param); }
}
Interface<int>* en = new Enfant<Type, int>();

mais g pas envie de faire comme ca!!!
merci

vendredi 25 novembre 2005 à 11:35:51 | Re : virtual template

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Il semblerait que ce ne soit pas possible: http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vccore/html/C2898.asp
vendredi 25 novembre 2005 à 12:01:35 | Re : virtual template

cosmobob

salut,
non ca marche pas, sous vs2003, tu peux meme instancier des classes abstraites, si la methode virtuelle pure est une methode template.

a ne pas utiliser donc :)

a+

vendredi 25 novembre 2005 à 12:10:48 | Re : virtual template

cosmobob

je retire ce que je viens de dire, j'avais réussi a faire bugger VS2003 avec template et virtual, mais je retrouve plus le code en question ...
samedi 26 novembre 2005 à 04:47:33 | Re : virtual template

Guillemouze

Réponse acceptée !
en effet, c'est pas possible.
Mais on peut voir sur ce tutorial une maniere de contourner le probleme, mais ca ne s'applique pas dans mon cas :s


"Les fonctions membres virtuelles ne peuvent pas être template. Si une fonction membre template a le même nom qu'une fonction membre virtuelle d'une classe de base, elle ne constitue pas une redéfinition de cette fonction. Par conséquent, les mécanismes de virtualité sont inutilisables avec les fonctions membres template. On peut contourner ce problème de la manière suivante : on définira une fonction membre virtuelle non template qui appellera la fonction membre template."

Merci de vos reponses.



Cette discussion est classée dans : class, void, template, interface, param


Répondre à ce message

Sujets en rapport avec ce message

Template avec surcharge d'opérateurs [ par benjiiim94 ] Bonjour,J'essaie déséspéremment de créer une petite classe pour me familiariser avec les templates. Non sans mal j'ai obtenu un résultat pas mal jusqu LRESULT CALLBACK dans une class [ par TeniX ] Salut, Je crée une class PRINCIPAL qui memorise la class WNDCLASSEX class PRINCIPAL { public: HINSTANCE hinstance; HWND hwndp Interface C++ [ par drcmomo ] Bonjour tout le monde !!Merci pour votre aide, je suis entrain de créer une interface graphique d'un logiciel .J'en ai jamais fait a paravant, j'aimer (.NET) INTERFACE GRAPHIQUE [ par drcmomo ] Bonjour tout le monde !!Merci pour votre aide, je suis entrain de créer une interface graphique d'un logiciel .J'en ai jamais fait au paravant, j'aime Class derivée , Template ( POURQUOI ES-CE CI DIFFICILE) ??? [ par nawakator ] J'ai déjà posé cette question, mais je la repose car elle est essentiel pour mon projet!J'ai créer un template permettant de géré une liste chainé de export class via dll probleme (cpp)? [ par cheroua ] salut, Voici la classe à partir de laquelle je genère une dll... J'utilise une méthode explicite p template et l'héritage [ par imad_lol ] salut.dans mon programme je déclare 2 classe X et Y.les 2 classe sont des classes templates et Y hérite de X :template class X{ };//****************** truc interessant pour les debutants [ par foxz ] ma question : est-ce portable ?ya t-il une autre solution ?non je ne demanderais pas si c safe thread :-))) (a priori ca l'est)class A{   int hidden;  iterator sur class template [ par istdasklar ] Bonjour,je n'arrive pas a crée des iterator sur le container d'une classe template!Je m'explique par cette exemple :#include using namespace std;templ template- au secours [ par toddy_101 ] bonjour tout le monde, j'ai un probleme au niveau des templates, ca bloke au niveau du linkage!! voici la declaration de la classe , et des methodes:


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales