调用基类构造函数
在 Java 中处理继承时,您可以使用 super() 调用超类构造函数。这就提出了如何在 C 中实现相同功能的问题。
具体来说,当从具有非默认构造函数的 C 基类继承时会出现此问题。编译器经常警告缺少适当的默认构造函数。
解决方案:利用构造函数的初始化列表
与 Java 不同,C 没有显式的 super()调用基类构造函数的语法。相反,您可以在派生类的构造函数的初始值设定项列表中指定调用。初始化列表出现在构造函数主体之前,用于初始化成员变量。
例如,考虑以下基类,其构造函数采用字符数组作为参数:
class BaseClass { public: BaseClass(char *name); ... };
要在派生类中调用基类构造函数,请将调用包含在初始值设定项列表中:
class Foo : public BaseClass { public: Foo() : BaseClass("asdf") {} };
这可确保基类构造函数是在任何其他成员初始化发生之前调用。由于基类构造函数接受参数,因此必须在初始化任何成员变量之前在初始值设定项列表中指定它们。
以上是如何在 C 中调用基类构造函数?的详细内容。更多信息请关注PHP中文网其他相关文章!