class K {
public:
  int f(int i) { return i; }
};

class Q {
public:
  Q() { kp = new K; }
  int g();
private:
  K * kp;
};

int Q::g() {
  return (kp->f)(42);
};


int main () {
  Q q;
  if (q.g() != 42)
    return 1;
}
