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:
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...