One very useful feature of C++ over C is it provides a proper way for proper initialization and clean-up when the instances of a user defined type are created so that you have a well formed object ready to start working with.
The language achieves this through the mechanism of constructors and destructors.
As you might note that the reason why constructors and destructors exist are for maintaining the instances which are created.
Now static
implies or at-least is used when there is something common which all the objects can use. You use it when there is really something which is to be shared among all the instances of the class which you create.
And the interface to the static data members of the class is provided through static member functions which are mainly used on the static data members.
So, if the constructor is allowed to be made static what should it possibly mean so that the definition given to it by making it static is still
on the lines of the reason why it came into picture(to properly initialize the object before you get hold of it). So, if there is no object then it doesn't make sense to have a constructor/destructor.
If you think on the above lines it doesn't make any sense to allow constructors to be static at least in this case(in C++). Hence, it is not supported by this language.