gpt4 book ai didi

c++ - 运算符 '...' 具有覆盖说明符但不覆盖基类成员

转载 作者:行者123 更新时间:2023-11-28 01:19:24 26 4
gpt4 key购买 nike

我正在尝试继承一个抽象类并覆盖它的所有纯虚函数

class A
{
virtual bool operator==(const A&) const = 0;
}

class B : A
{
bool operator==(const B& rhs) const override
{ ^^^^^^^^---problem here
// Comparison
}
}

错误:

Operator 'bool B::operator==(const B& rhs) const' has the 'override' specifier but does not override a base class member

最佳答案

当签名不同时,您不能覆盖 virtual 基类函数。在B类中,它必须是

bool operator==(const A&) const override;
// ^^ must be reference to A

请注意,测试运行时多态类型的相等性总是很奇怪;你抽象出类型,然后你尝试比较两个实例 - 但在派生类型中这应该如何发生?尝试为旨在与值语义一起使用的类保留 operator==

关于c++ - 运算符 '...' 具有覆盖说明符但不覆盖基类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57251471/

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