gpt4 book ai didi

c++ - 如何使用继承的方法和相同的基类方法?

转载 作者:太空宇宙 更新时间:2023-11-04 14:45:17 25 4
gpt4 key购买 nike

假设我有一个类动物和一个继承动物的类狗。假设我想调用一个名为“eat()”的方法,它是狗专用的,但所有动物之间都有一些共享的吃代码,所以我知道我可以将“eat()”设为虚拟,但它不会使用基类代码,例如,我是否应该只调用我的基类“eatAll()”,然后来自特定动物的每个 eat 方法都必须调用它?只是在寻找我猜的最佳设计。这是在 C++ 中

最佳答案

这是经典template method pattern .基本上:

class Animal
{
void Eat()
{
//stuff specific to all animals

SpecificEat();
}
virtual void SpecificEat() = 0;
};

class Dog : Animal
{
virtual void SpecificEat()
{
//stuff specific to dog
}
};

使用这种方法,您不必在派生类的覆盖中显式调用基类方法。它由非virtual Eat() 自动调用,具体功能由virtual SpecificEat() 实现。

关于c++ - 如何使用继承的方法和相同的基类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12807116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com