gpt4 book ai didi

c++ - 覆盖c++类中的一个方法

转载 作者:行者123 更新时间:2023-11-30 01:25:35 26 4
gpt4 key购买 nike

如果我有这个类:

class FooBar {
public:
FooBar(int qux);
void bar();

void foo1();
void foo2();
//...
void foo99();
}

如何覆盖 FooBar 中的 bar 方法,同时仍然能够使用所有其他 foo 方法而无需再次定义它们?

编辑:

我想这样使用:

FooBar2 baz(1); // call the constructor of FooBar, FooBar(1)
baz.foo1(); //call method foo1 of original FooBar
baz.bar(); // call method bar of FooBar2

我希望编辑 FooBar 的 header 或实现。

是否也可以让构造函数调用FooBar中的原始构造函数?

最佳答案

您将 bar 设为 virtual,因为覆盖仅适用于 virtual 方法。

然后您扩展 FooBar 并为 bar 提供一个新的实现。

class FooBar {
public:
virtual void bar();

void foo1();
void foo2();
//...
void foo99();
};

class FooBarDerived : FooBar
{
public:
void bar();
};

关于c++ - 覆盖c++类中的一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12107371/

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