The Virtual term tends to be overridable.Whenever in base class function written with virtual can only be overriden. Also the signature including function name and parameters must be same for virtual functions.
While this is not possible with constructors because constructors have same name as class,and no two constructors of base-derived classes can have same name.
And the other reason is, Constructors are special method that gets called automatically unlike other methods.
Even if i'll instantiate an object of derieved class,base class constructor get invoke first then only derieved one.
So while instatiating object of base or derieved will fire base constructor. That's why we can't use constructor as a virtual function.