title: Is there a way to declare a pointer to a particular method only?
body: <p>I have a class:</p>
  
  <pre><code>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);
  }
  </code></pre>
  
  <p>Now by <code>void (Car::*action)(int)</code> I declare a pointer named <code>action</code> to <code>Car</code> method. The problem is that many methods can be assigned to it: <code>&amp;Car::openDoor</code>, <code>&amp;Car::closeDoor</code>, <code>&amp;Car::openWindow</code>, <code>&amp;Car::closeWindow</code>, <code>&amp;Car::turnOnAirConditioner</code>, but not <code>&amp;Car::startEngie</code>.</p>
  
  <p>I wonder if I am right: there is no way to declare a pointer to a particular method only. In other words: <code>pointer type</code>, which accept only a particular named function, can't be declared.</p>