如何在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