首页 > 解决方案 > 基类构造函数争论与派生类构造函数之间的关系

问题描述

我无法理解这种说法:“如果基类具有带参数的构造函数,那么派生类必须具有构造函数并将参数传递给基类构造函数。” 如果可以的话,请使用一些程序。

标签: c++inheritanceconstructor

解决方案


如果您有一个名为 Animal 的基类和一个名为 Dog 的派生类。您将需要在 Dog 的构造函数中调用 Animal 的构造函数来初始化继承的成员变量。一个非常基本的示例如下所示:

class Animal
{
int num_legs;
public:
Animal(int legs): num_legs(legs){}
};

class Dog: public Animal
{
public:
// now we send the number of legs to the Base class
Dog(int legs): Animal(legs) {}
};

如果您依赖 Dog 的默认构造函数,在这种情况下,您最终会得到一个未初始化的腿变量。

我希望这个对你有用。


推荐阅读