#include <iostream>

class MyClass
{
   public:

      MyClass (const bool select)
      {
         if (select)
         {
            speaker = &MyClass::foo;
         }
         else
         {
            speaker = &MyClass::bar;
         }
      }

      void speak() const
      {
         (this->*speaker)();
      }

      void (MyClass::*speaker)() const;

   private:
      void foo() const { std::cout << "Foo\n"; }
      void bar() const { std::cout << "Bar\n"; }
};

int main()
{
   MyClass m1(true);
   MyClass m2(false);

   m1.speak();
   m2.speak();
}

