もう一案

class A
{
public:
  A(int a = ::createDefault_a()) : a_(a) {}
private:
  int a_;
};

で、クライアント側で、必ず「::createDefault_a()」を実装させる