C++ 继承 : Calling Parent Class Constructor

标签 c++ class inheritance

我正在用头撞墙试图记住如何处理继承。假设我们有一个名为 Fruits 的父/基类和一个名为 Apples 的子/派生类。 Apples 与 Fruits 的唯一区别在于它有一个额外的变量,称为 number。我们如何实现它,以便 Apples 默认情况下始终调用父类构造函数,并使用值“Apples”(名称)和 SNACK(类型)?

水果将这样实现(

Fruits::Fruits(string name, KIND type): myName(name), myKind(type)
{}

Apples 将如何实现,以便如果 Apples 被称为 Apples(),它默认名称为“Apples”并输入 SNACK,数字为 5? 这是正确的吗?

Apples::Apples() : Fruits("Apple", SNACK)
{
    number = 5;
}
 Apples::Apples(int num)  : FoodItem("Pancakes", BREAKFAST )
{

}

最佳答案

这种方式是正确的:

Apples::Apples() : Fruits("Apple", BREAKFAST)
{
    number = 5;
}

但这种方式会更好,因为它更具可读性和一致性:

Apples::Apples() : Fruits("Apple", BREAKFAST), number( 5 )
{
}

关于C++ 继承 : Calling Parent Class Constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34164269/

相关文章:

c++ - 类,BOOST_TEST_MODULE,BOOST_AUTO_TEST_SUITE : problems from naming?

c++ - odeint 中的推力和刚性 ODE 求解器

c# - 调用方法的快捷方式

java - 如何在 Java 中调用给定特定参数类的不同方法

C#继承。从基类派生类

c++ - 为什么我在写 = 而不是 == 时没有收到警告?

c++ - 重新映射模板参数结构

c++ - 如何从类成员函数返回指针,例如size_t * 类::函数();并使用类析构函数 ~size_t*class::function();

python - 将 "collection"属性直接添加到类的顶层

ruby - 实例变量继承