gpt4 book ai didi

c++ - 重载派生类中的比较运算符权私有(private)继承

转载 作者:太空狗 更新时间:2023-10-29 21:29:14 26 4
gpt4 key购买 nike

我这里有两个类(class)。基类:

class A
{
int x;
public:
A(int n):x(n){}

friend bool operator==(const A& left, const A& right)
{return left.x==right.x;}
};

和一个从 A 私有(private)继承的派生类:

class B : private A
{
int y;
public:
B(int n,int x):A(x),y(n){}
friend bool operator==(const B& left, const B& right)
{
if(left.y==right.y)
{/*do something here...*/}
else{return false;}
}
};

我知道如何比较 A 的两个实例:我只是将成员变量相互比较。但是我怎么可能比较 B 的实例呢?两个实例很容易在其关联的“A”实例中具有不同的“x”成员,但我不知道如何将这些实例相互比较。

最佳答案

您可以将实例转换为 A& 并为 class A 使用相等运算符:

if (static_cast<A&>(left) == static_cast<A&>(right)) {
// ...
}

关于c++ - 重载派生类中的比较运算符权私有(private)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5359484/

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