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 :

débutant accès aux méthodes


Sujet :

Visual C++

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 76
    Par défaut débutant accès aux méthodes
    Bonjour

    J'apprends le C++, notament avec le livre de mr Marius Vassiliu qui propose dans son bouquin au chapitre 4 un exemple de code pour illustrer l'accès aux méthodes d'une classe. Dans ce code on a une fonction globale Surface() et une méthode Surface(). A l'intérieur d'un objet, la fonction globale est masquée par la méthode, aussi pour l'appeler de l'intérieur de l'objet il propose d'utiliser l'opérateur de résolution de portée globale :: . Je pense avoir jusqu'ici tout compris, sauf que lorsque je compile ce code(avec Visual C++ 2005) le compilateur me renvoie invariablement le message suivant :

    : error C2039: 'Surface'*: n'est pas membre de '`global namespace''

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    const float PI = 3.1415926535f;
    class CCercle
    {
    public :
    	float rayon,x,y;
    	void InitCenter(){ x = y = 0 ; }
    	float Surface() const {return PI*rayon*rayon;}
    	void AffIntSurfaceInt(){printf("Surface=%f\n",Surface());}
    	void AffIntSurfaceExt(){printf("Surface=%f\n",::Surface(this));}
    };
    float Surface(CCercle *pc){return PI*pc->rayon*pc->rayon;}
    Conclusion j'ai du mal comprendre...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Il n'existe pas de méthode statique Surface() dans ta classe. Ca a l'air normal, Surface() dépend d'une variable membre de ta classe CCercle (en l'occurence le rayon ici).
    L'opérateur de résolution de portée ne peut s'utiliser que pour appeler des membres ou méthodes statiques.

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

Discussions similaires

  1. [1.1] Accès aux méthodes 'protected' d'une dll
    Par Yodabis dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/02/2007, 16h10
  2. Problème d'accès aux méthodes d'une classe
    Par RR instinct dans le forum Langage
    Réponses: 5
    Dernier message: 26/06/2006, 14h51
  3. (débutant) Accès aux données d'un formulaire en XSL
    Par bilo2000 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/07/2005, 14h51
  4. Réponses: 5
    Dernier message: 22/04/2005, 11h38
  5. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02

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