J'ai une classe :
class Car
{
public:
Car();
~Car();
// nr indicates which particular door.
void startEngie();
void openDoor(int nr);
void closeDoor(int nr);
void openWindow(int nr);
void closeWindow(int nr);
void turnOnAirConditioner(int vloume);
}
Maintenant par void (Car::*action)(int)
Je déclare un pointeur nommé action
a Car
méthode. Le problème est que de nombreuses méthodes peuvent lui être attribuées : &Car::openDoor
, &Car::closeDoor
, &Car::openWindow
, &Car::closeWindow
, &Car::turnOnAirConditioner
mais pas &Car::startEngie
.
Je me demande si j'ai raison : il n'y a pas moyen de déclarer un pointeur sur une méthode particulière uniquement. En d'autres termes : pointer type
qui n'acceptent qu'une fonction nommée particulière, ne peuvent pas être déclarées.