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 :

detecter qu'une classe est abstraite


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut detecter qu'une classe est abstraite
    Bonjour,

    j'ai fais un générateur qui créent des fichiers .h et des .cpp, dans ces fichiers je fais un certain traitement pour les classes de ma librairie, et à un certain moment dans mon code généré il ya un "new Maclasse", pour les classes abstraites j'ai des erreurs de compils,
    est ce que je peux detecter qu'une classe est abstraite pour adapter le code à générer dans ce cas.

    j'espere que j'ai été clair et merci pour votre aide.

  2. #2
    r0d
    r0d est actuellement connecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 293
    Billets dans le blog
    2
    Par défaut
    Peux-tu analyser ton .h pour savoir si la classe contient au moins une fonction virtuelle pure?

  3. #3
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    1-c'est en runtime intrinséquement qu'on va détecter si la classe est abstraite ou non.
    Là c'est radicalement différent c'est de l'analyse de texte.

    2-Et si je n'utilise pas boost ?

    Comme le dit R0d il faut détecter la présence du mot clé "vitual"

  5. #5
    r0d
    r0d est actuellement connecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 293
    Billets dans le blog
    2
    Par défaut
    En réalité c'est un peu plus compliqué que cela. Pour qu'une classe soit abstraite, et qu'elle ne puisse donc pas être instanciée, elle doit contenir au moins une fonction virtuelle pure. Il faut donc détecter le mot-clé virtual et le =0.

    Mais bon, nous ne connaissons rien du contexte.

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    1-c'est en runtime intrinséquement qu'on va détecter si la classe est abstraite ou non.
    Là c'est radicalement différent c'est de l'analyse de texte.
    C'est détecté à la compilation.

    Pour qu'une classe soit abstraite, et qu'elle ne puisse donc pas être instanciée, elle doit contenir au moins une fonction virtuelle pure
    Une classe ne possédant que des constructeurs protégés sera également abstraite, si on considère qu'une classe abstraite est une classe qui ne peut être instanciée.

  7. #7
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Par défaut
    dans mon cas, je parse le .h de la classe donc avec qlq modifications je peux detecter la declaration d'une méthode virtuelle pure, j'ai aussi boost dans mon environnement je vais creuser un peu ces 2 pistes et je vous reviens, merci pour vos propositions

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 10/02/2007, 13h27
  2. Detecter si une jvm est installée sur le poste client
    Par jpastier dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/02/2007, 11h43
  3. Réponses: 2
    Dernier message: 29/06/2006, 16h33
  4. [POO] Classe interne à une classe, est ce possible ?
    Par Matth_S dans le forum Langage
    Réponses: 13
    Dernier message: 10/02/2006, 10h24
  5. Detection si une BD est sollicitée
    Par Yepazix dans le forum Bases de données
    Réponses: 6
    Dernier message: 31/08/2004, 19h37

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