gpt4 book ai didi

C++ 基类::重写虚函数的方法

转载 作者:行者123 更新时间:2023-11-30 02:03:40 24 4
gpt4 key购买 nike

如果我对虚拟事件有以下覆盖:

void derivedClass::method(event)
{

// my stuff

baseClass::method(event); // <--

}

//<--- 行的作用是什么?它叫什么?我认为它不会调用基类的方法,因为它是虚拟的(所以没有主体)

最佳答案

正如您所建议的,它调用基类的方法。它是虚拟的这一事实仅意味着它可以被覆盖并且仍然可以从指向基类的指针/引用访问派生类的方法。

这样做的原因很容易通过一个例子看出:

class Base {
public:
virtual void foo() {
/* do some generic stuff */
}
};

class Derived : public Base {
public:
void foo() {
/* do some specific stuff */

/* if you also want to do the generic stuff,
you can call the same method from the base class. */
Base::foo();
}
}

您可能不想为 Derived 类做通用的事情。然后您只需删除对 Base::foo() 的调用即可。

这里有一个很好的引用 virtual methods .

关于C++ 基类::重写虚函数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11549957/

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