Why C++ does not have a virtual constructor?
The virtual mechanism works only when we have a base class pointer to a derived class object.
In C++, constructor cannot be virtual, because when constructor of a class is executed there is no virtual table in the memory, means no virtual pointer defined yet. So, the constructor should always be non-virtual.
But virtual destructor is possible. Here is an example
Example
#include
using namespace std;
class b {
public:
b()
{ cout
Output
Constructing base
Constructing derived
Destructing derived
Destructing base