J'ai la classe suivante:pointeur C de la fonction de membre, déclaration
class Point2D
{
protected:
double x;
double y;
public:
double getX() const {return this->x;}
double getY() const {return this->y;}
...
};
et pointeur vers la fonction de membre déclaré dans une autre classe:
double (Point2D :: *getCoord)() const;
Comment déclarer/pointeur initlialize au membre fonction pour:
1] fonction membre de classe statique
Process.h
class Process
{
private:
static double (Point2D :: *getCoord)() const; //How to initialize in Process.cpp?
...
};
2] Fonction non membre de la classe
Process.h
double (Point2D :: *getCoord)() const; //Linker error, how do declare?
class Process
{
private:
...
};
'Process :: GetCoord = & Point2D :: getX,' n'est pas une définition valide (ou déclaration) car il n'y a pas de type, il est juste une mission expression donc pas valide là où vous l'avez. Était-ce censé être une définition? –
La question était de savoir comment déclarer/initialiser le pointeur getCoord. J'ai d'abord écrit comment le déclarer, puis comment l'initialiser. – Dialecticus
Vous avez modifié la déclaration, mais je ne vois pas de définition (dont l'absence était probablement la cause de l'erreur de lien dans la question) ou une initialisation (l'affectation n'est pas la même que l'initialisation), peut-être que je Ne comprends pas ce que vous essayez de montrer? –