gpt4 book ai didi

具有相同名称的 C++ 虚拟覆盖函数

转载 作者:IT老高 更新时间:2023-10-28 21:55:33 27 4
gpt4 key购买 nike

我有类似的东西(简体)

class A
{
public:
virtual void Function () = 0;
};

class B
{
public:
virtual void Function () = 0;
};

class Impl : public A , public B
{
public:
????
};

如何实现 A 的 Function () 和 B 的 Function() ?Visual C++ 允许您只定义特定的内联函数(即不在 cpp 文件中),但我想这是一个扩展。 GCC 对此提示。有没有标准的 C++ 方法来告诉编译器我要覆盖哪个函数?

(Visual C++ 2008)

class Impl : public A , public B
{
public:
void A::Function () { cout << "A::Function" << endl; }
void B::Function () { cout << "B::Function" << endl; }
};

谢谢!

最佳答案

您不能在此处使用限定名称。我你写 void Function() { ... } 你正在覆盖 both 函数。赫伯萨特秀 how it can be solved .

另一个选择是重命名这些函数,因为它们显然做了不同的事情(否则我看不到以相同的行为覆盖 both 的问题)。

关于具有相同名称的 C++ 虚拟覆盖函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150310/

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