编写我们自己的比较操作 最近我接受了C++的采访。他们让我写比较运算符逻辑==运算符。比如: ifvalue1==value2 我必须编写自己的比较运算符逻辑,而不是使用==运算符。有人能帮我找到解决办法吗

编写我们自己的比较操作 最近我接受了C++的采访。他们让我写比较运算符逻辑==运算符。比如: ifvalue1==value2 我必须编写自己的比较运算符逻辑,而不是使用==运算符。有人能帮我找到解决办法吗,c++,C++,您想编写自己的重载相等运算符。这很简单: #include <iostream> class A { public: A(int x) : number { x } {} int number; }; bool operator==(const A& left, const A& right) { return left.number == right.number; } int main() { A a(0); A b(

您想编写自己的重载相等运算符。这很简单:

#include <iostream>

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

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

int main()
{
    A a(0);
    A b(1);
    std::cout << "a == b: " << (a == b) << "\n";
    return 0;
}

什么,你是说重载操作符==函数?还是制作自己的比较函数?你试了什么?你有什么问题?你能详细说明一下吗?不管怎样,他们让我写逻辑来比较两个值,我写了:ifvalue1==value2{}。然后他们告诉我创建自己的比较逻辑,而不是使用==运算符;e、 g.自定义类型。您不会为值声明类型。面试官可能一直在尝试测试很多东西。我们无法理解他们的想法,所以不可能回答你的问题。然而,需要注意的是,你显然不理解这个问题,也没有得到澄清。这对你在面试中的表现很不利。注意:不管你是一个多么出色的程序员;如果您无法澄清需求,那么您的程序很可能是错误的!是的,操作符重载是一种很好的策略,但它似乎不是一种好方法。我在另一个关于使用比较运算符重载的讨论线程中读到了一些关于这一点的评论:我对此感到困惑。在这种情况下,使用操作符重载是否很好?@ ScChjjoSe==运算符是比较C++中的相等性的自然方式,因此如果需要比较两个对象以获得相等性,它似乎是操作符重载的一个很好的候选。@ ScjjoSE不再这么含糊。有些评论让你困惑。如果你不解释你在挣扎什么,你怎么能指望有人帮助和回答你!为什么您认为重载相等运算符是一个糟糕的策略?在某些情况下,它可能是次优的,但一般来说,这是为用户定义类型提供合理语义的方法。除非有特定的原因说明在您的特定问题中重载运算符是个坏主意,否则默认为认为它是个好主意:@Sachinps:您链接到的问题是关于通用重载运算符的。那么这里的相关性到底是什么呢?