我正在用头撞墙试图记住如何处理继承。假设我们有一个名为 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/