IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Template : problème constructeur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Par défaut Template : problème constructeur
    Bonjour à tous,

    Je fais face à un problème d'utilisation de template :

    TEST_TEMPLATE.cpp
    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
     
    #include <iostream>
    using namespace std;
     
    #include "Template.h"
     
    class ImplTemplate:public Template<int>
    {
    public:
     
    	ImplTemplate(int i){setlu(i)};
    };
     
    int main() {
    	cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    	ImplTemplate cImplTemplate(1);
    	return 0;
    }
    Template.h
    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
     
    template <typename T> class Template
    {
    public:
    	Template(int i)
    	{
    		li=i;
    	};
    	void setlu(int i)
    	{
    		lu=i;
    	}
     
    private :
    	int li;
    	int lu;
    };
    Lors de la compilation de TEST_TEMPLATE.cpp, j'ai l'erreur suivante :
    ../src/TEST_TEMPLATE.cpp: In constructor ImplTemplate::ImplTemplate(int):
    ../src/TEST_TEMPLATE.cpp:18: error: no matching function for call to Template<int>::Template()
    ../src/Template.h:18: note: candidates are: Template<T>::Template(int) [with T = int]
    ../src/Template.h:12: note: Template<int>::Template(const Template<int>&)
    ../src/TEST_TEMPLATE.cpp:18: error: expected `;' before } token
    make: *** [src/TEST_TEMPLATE.o] Error 1
    Je ne comprends pas pourquoi le constructeur vide est requis ...

    Merci d'avance pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Dans le constructeur de ta classe dérivée, tu n'indiques pas comment comment construire la partie correspondant à la classe de base, il utilise donc le constructeur par défaut pour ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ImplTemplate(int i) : Template(i)
    {
    }
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Par défaut
    Tout bêtement ...

    Je ne pensais pas que cette notion s'appliquait également quand on dérive d'une template ..

    Je me permets de corriger juste un truc par rapport à ton bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ImplTemplate(int i) : Template<int>(i)
    {
     
    }
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 17/03/2007, 17h31
  2. Problème constructeur JDialog
    Par catwomanette dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 05/01/2007, 09h44
  3. problème constructeur + héritage
    Par BOLARD dans le forum C++
    Réponses: 10
    Dernier message: 13/04/2006, 08h11
  4. [template] problème de passage de paramètres
    Par vinny_the_true dans le forum C++
    Réponses: 2
    Dernier message: 14/12/2005, 01h15
  5. [DLL/classe template] problème de link
    Par Bob.Killer dans le forum C++
    Réponses: 7
    Dernier message: 31/08/2005, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo