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 :

Polymorphisme : non-reconnaissance de méthode


Sujet :

C++

  1. #1
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut Polymorphisme : non-reconnaissance de méthode
    Bonsoir,
    Je me suis mis à l'OpenGL en C++ et je suis à 2 doigts de me tirer une balle . Je travaille sous Dev C++. J'ai un programme principal qui se situe dans un fichier main.cpp et qui inclut entre autres un fichier test.h.

    Test.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    using namespace std;
     
    class Test {
          public:
                Test() {};
                void rien() {};
    };

    test.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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include <windows.h>
    #include <gl\gl.h>
    #include <gl\glu.h>
    #include <gl\glaux.h>
    #include "Test.h"
     
    // ...
     
    int affichage (GLvoid) {
     
    // ...
     
          Test t();
          t.rien();
    }
     
    // ...
     
    int WINAPI WinMain(
    		HINSTANCE hInstance,
    		HINSTANCE hPrevInstance,
    		LPSTR lpCmdLine,
    		int nCmdShow) {
     
    	// ...
     
    	while (!fini) {
     
    		// ...
     
    		affichage();
     
    		// ...
     
    	}
    }
    Par souci de clarté, je n'ai pas détaillé tout le contenu de mon fichier test.cpp. Le programme présenté ici n'est pas super propre : ça reste pour l'instant une version de test.

    Quand je compile, l'erreur renvoyée est :
    request for member `rien' in `t', which is of non-class type `Test ()()' .

    Le problème apparaît aussi avec des classes ayant un nom différent de Test. Avec Google, j'ai vu que cette erreur pouvait être dûe à une histoire de pointeur (utilisation de '.' au lieu de '->') mais ici, je n'ai pas de pointeur. Je n'ai pas eu ce problème avec l'inclusion de toutes les autres classes que j'ai faite jusqu'à présent. Impossible de trouver d'où vient le problème...
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Le message d'erreur est clair... du moins quand on arrive à le lire.

    ne définit pas t comme étant une variable de type Test initialisée par le constructeur par défaut mais déclare une fonction t sans paramètres et retournant un Test. (Imagine que tu vois cette déclaration à l'extérieur de tout bloc, tu verras que c'est bien le cas).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Mais comment j'ai fait pour pas voir ça...

    En tous cas, merci beaucoup. J'ai supprimé mes parenthèses (inutiles puisque le constructeur est forcément appelé) et la compilation passe correctement. La complétion de code se fait à nouveau, le compilo comprenant qu'il s'agit bien d'un objet (et non plus d'une fonction). Merci : j'aurai pu passer du temps à trouver d'où ça venait.
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

  4. #4
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    ?

  5. #5
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Oui, résolu. J'avais mis [résolu] en intitulé mais il y a une option prévue pour ça.
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

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

Discussions similaires

  1. Pb de non-reconnaissance de la variable word.application
    Par Tintou dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/04/2007, 15h34
  2. Réponses: 3
    Dernier message: 19/03/2007, 01h19
  3. Non reconnaissance des modules Linguistiques
    Par Caromelice dans le forum Framework .NET
    Réponses: 3
    Dernier message: 12/12/2006, 10h45
  4. CITRIX sous WINNT: non reconnaissance d'un driver
    Par Asdorve dans le forum Windows Serveur
    Réponses: 10
    Dernier message: 04/07/2006, 11h36
  5. Non reconnaissance d'une variable
    Par dubitoph dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2006, 11h21

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