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

水果将照此实施(

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


如何实现Apple,以便如果将Apple称为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++ - C++继承:调用父类构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34164269/

10-11 16:08