For the constructor problem here's what I would do. Instead of making a bunch of different constructors, I would just make free functions that create objects and return them. Here's a simplified example:
class X
{
public:
X() { }
X(int ia, int ib, int ic) :a(ia), b(ib), c(ic) { }
private:
int a,b,c;
};
X CreateUninitializedX() { return X(); }
X CreateZeroInitializedX() { return X(0,0,0); }
X CreateRandomizedX() { return X(rand(),rand(),rand()); }
For your other problem, yes, C++ does have member function pointers. But I find their syntax quite odd, and I have never had occasion to use them, so I cannot advise you on them. However, I am quite positive that they are unnecessary in most situations, and can instead be replaced by free functions, just like the constructor issue. I'd need more details about your specific problem to be able to help you though.