是否有必要始终为您的基类提供构造函数?例如,如果我有以下基类,然后是一些派生类。
class Animal
{
public:
//Is this constructor necessary?
Animal();
virtual ~Animal();
};
class Zebra: public Animal
{
public:
Zebra();
~Zebra();
};
class Elephant: public Animal
{
public:
Elephant();
~Elephant();
};
假设我正在创建Animal指针,然后动态分配新的Zebra和Elephant对象。如果我从不打算创建一个Animal对象,那么是否真的需要显式创建一个Animal构造函数?
答案 0 :(得分:2)
您不需要显式提供构造函数。 生成默认值(如果您不提供其他构造函数)。
所以
class Animal
{
public:
virtual ~Animal();
};
就足够了。
派生类构造函数将调用Base类构造函数(显式地隐式)。