As long as construct
isn't virtual, it's generally safe. I tend to prefer going the other direction though.
Make as few general constructors as possible, and if I need a lot of easier-to-use convenience construction functions, I use free (non-member) functions, which call the constructor, filling in the missing parameters with suitable default values, and then return the constructed object.
That way I avoid the somewhat iffy issue of constructors calling member functions of the not-yet-constructed object, and I avoid duplicating code in the class.