A derived class can only be constructed once all base class’ are fully constructed. So it doesn’t matter if you call the base class’ constructor or not . If you don’t call, as long as there is a default constructor available for compiler to determine, it will be called. Otherwise compiler will throw error.