Eve1yn0 2023-01-18 11:24 采纳率: 64.5%
浏览 69
已结题

关于重载==运算符的问题

如下代码所示,不理解我定义的Person类里的==重载函数为什么这么写? bool operator==(const Person &p)中的this->m_Age和o.m_Age搞糊涂了

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;

//自定义数据类型
class Person
{
public:
    Person(string name, int age)
    {
        this->m_Name = name;
        this->m_Age = age;
    }
                //不理解下面这个重载函数,希望各位大佬帮我看看
    bool operator==(const Person &p)
    {
        //cout << "p.m_Age:" << p.m_Age << "\t this->m_Age:" << this->m_Age << endl;
        if (p.m_Age == this->m_Age)
        {
            return true;
        }

        else
        {
            return false;
        }
    }

    string m_Name;
    int m_Age;
};

class myPrint2
{
public:

    void operator()(const Person & p)
    {
        cout << "姓名:" << p.m_Name << "\t年龄:" << p.m_Age << endl;
    }
};

void test02()
{
    Person p1("aa", 10);
    Person p2("bb", 30);
    Person p3("cc", 20);
    Person p4("dd", 10);
    Person p5("ee", 40);
    Person p6("ff", 10);
    vector<Person>v;
    v.push_back(p1);
    v.push_back(p2);
    v.push_back(p3);
    v.push_back(p4);
    v.push_back(p5);
    v.push_back(p6);
    //将所有10替换为1000
    Person pOld("aa", 10);
    Person pNew("aa", 1000);
    cout << "替换前:" << endl;
    for_each(v.begin(), v.end(), myPrint2());
    cout << "\n替换后:" << endl;
    replace(v.begin(), v.end(), pOld, pNew);
    
    for_each(v.begin(), v.end(), myPrint2());
}

int main()
{
    //test01();
    test02();

    system("pause");
    return 0;
}

  • 写回答

7条回答 默认 最新

  • cjh4312 2023-01-18 11:31
    关注

    对着呢呀,比较两个人是否相等的时候,就是比较他们的年龄。p是传进来的对象,this是当前对象

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 1月26日
  • 已采纳回答 1月18日
  • 修改了问题 1月18日
  • 创建了问题 1月18日

悬赏问题

  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码