gpt4 book ai didi

c++ - 重载运算符函数==

转载 作者:行者123 更新时间:2023-11-27 23:08:37 25 4
gpt4 key购买 nike

我不熟悉 C++,我的导师提供了一个让我感到困惑的函数

     operator long (void);
long operator == (Base & base) {
return ! strcmp (name, base);
}

据我所知,运算符正在对 2 个 Base 对象进行比较?还是我错了?当我调用函数本身时,它告诉我没有这样的函数调用。

我调用它返回这个错误的函数

没有匹配函数... operator(Base*&,Base&)

最佳答案

该函数未命名为operator,而是命名为operator==。这是一个overloaded comparison operator .你只需这样调用它:

Base a, b;
if(a==b) // <-- this is the function call
std::cout<<"equal"<<std::endl;
else
std::cout<<"not equal"<<std::endl;

当然,当函数是 Base 类的成员 时就是这种情况。您没有提供所有代码,所以我猜是。

最重要的是,代码的第一行是另一个重载运算符的声明(将类转换为 long 的运算符),它的实现在其他地方(可能)提供。

关于c++ - 重载运算符函数==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21619354/

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