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

Visual C++ Discussion :

cannot instantiate abstact class


Sujet :

Visual C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut cannot instantiate abstact class
    Bonjour,

    La notion d'h�ritage et d'utilisation de virtual me pose qques soucis

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    CCds.cpp
    c:\ccds.h(31) : error C2259: 'CDayCounter' : cannot instantiate abstract class due to following members:
      c:\headers\cdaycounter.h(13) : see declaration of 'CDayCounter'
    CDayCounter' : cannot instantiate abstract class due to following members:
    headers\cdaycounter.h(13) : see declaration of 'CDayCounter'
    CdayCOunter est un membre de CCC
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class CCC 
    {
    public:
    	CCCC();
    	virtual ~CCCCC();
    private:
    	CDayCounter m_daycounter;			//schedule 
     
    };
    et ma classe CDayCOunter est une classe mere
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class CDayCounter  
    {
    public:
    	 CDayCounter();
    	 CDayCounter(string s);
    	virtual ~CDayCounter();
    	// according to a calculation convention
    	virtual double yearFraction(CDate &d1, CDate &d2) = 0;
    	string m_dayCountType;
    };
    JE vous remercie d'avance pour votre aide

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Ben, comme indiqu�, CDayCounter poss�de une fonction virtuelle pure, c'est une classe abstraite.

    Tu ne peux donc pas avoir d'objet de type CDayCounter dans ta classe CCC.
    Par contre, tu peux y mettre un pointeur vers CDayCounter (CDayCounter *) ou une r�f�rence vers CDayCounter (CDayCounter &)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut
    et un pointeur ou une reference oui?
    si oui
    pour quelle raison?

    et la je crois que ca se clarifiera

    merci

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Parce qu'une r�f�rence/pointeur de type r�f�rence/pointeur vers (une classe m�re) peut tout-�-fait pointer en r�alit� sur un objet d'une classe fille, non-abstraite, elle.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 91
    Par d�faut
    ok ca me va

    merci

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par d�faut
    Bonjour,

    Je pense avoir un probl�me similaire, j'esp�re avoir trouv� le bon endroit pour poster sinon je m'en excuse.

    Voil� j'ai cr�er une classe m�re Action qui poss�de une m�thode virtuel comme suit:
    virtual string getname() = 0
    Cette m�thode est par la suite intancier dans les sous classes ActionTouch, ActionZoom etc... qui h�rite de la classe Action.

    Dans mon programme principal je voudrais cr�er un vecteur d'Action. Cepandant lors de la cr�ation il me dit que c'est impossible car il ne peut instancier une classe abstraite j'ai bien compris gr�ce � vos postes que c'�tait � cause de cette fonction virtuel getname(), mais je ne sais pas comment faire.

    Le but c'est de faire un vecteur d'Action dans lequel il y aurait plusieurs objets d�rivant de la classe action..
    Je suis d�sol� si ma question est toute b�te je suis d�butante et je ne savais pas trop o� poster. J'espere avoir �t� assez claire.
    Merci d'avance pour vos r�ponses.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par d�faut
    Merci a moi m�me

    j'ai trouv� la r�ponse je la met au cas ou

    il faut d�clarer le vecteur ainsi

    vector <Action*> nomVecteur

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 7
    Dernier message: 01/03/2013, 11h58
  2. Fatal error: Cannot instantiate non-existent class: gladexml
    Par Streetounet dans le forum GTK+ avec PHP
    R�ponses: 4
    Dernier message: 07/01/2009, 14h46
  3. R�ponses: 3
    Dernier message: 15/01/2008, 11h30
  4. [debug] "cannot find symbol" classe interne
    Par NailMaker dans le forum Langage
    R�ponses: 2
    Dernier message: 15/06/2006, 20h00
  5. [Plugin] Comment instantier certaines classes de ANT ?
    Par relivio dans le forum Eclipse Platform
    R�ponses: 2
    Dernier message: 01/04/2004, 15h45

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