如何在C++中重载==运算符

如何在C++中重载==运算符

C++中的一个类是面向对象编程的基础构建块。类是用户定义的数据类型,它有自己的数据成员和成员函数,可以通过创建该类的实例来访问和使用。

运算符重载是一种多态性,发生在编译时。可以给现有的C++运算符赋予特殊的含义,而不改变它的含义。

语法:

class sampleClass
{
   public:
   returntype operator operatoToBeOverloaded ( [arguments required] )
   {
       //sampleCodeHere
   }
};

除了一些不能重载的运算符,几乎所有运算符都可以被重载。以下是这些运算符:

  • 作用域解析运算符(::)
  • 大小运算符
  • type id运算符
  • 条件运算符(?:)

==是一个比较运算符,返回一个true或false的布尔值。它检查运算符左右两边的两个操作数是否相等。

考虑一个具有以下数据成员的Car类:

class Class{
 private:
   string name;
   int cost;
};

在这个类中,我们可以使用==运算符来确定两个工人对象是否相同。

bool operator == (const Car &c)
{
   if (name == c.name && cost == c.cost)
      return true;
  return false;
}
// C++程序以重载==运算符
#include<iostream>
#include<string>
using namespace std;
  
class Car{
  private:
    string name;
    int cost;
    public:
        Car(string n, int c){
            name=n;
            cost=c;
        }
        bool operator == (const Car &c){
            if (name == c.name && cost == c.cost)
                return true;
            return false;
        }
};
int main(){
    Car car1 ("Santro",500000);
    Car car2 ("Safari",1000000);
    if (car1 == car2)
        cout<<"Equivalent"<<endl;
    else
        cout<<"Not Equivalent"<<endl;
}  

输出

Not Equivalent

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程