请你举一个例子 重写== 运算符,结构体
时间: 2024-09-09 16:06:06 浏览: 44
在C++中,重写等于运算符(==)和结构体通常涉及以下步骤:
首先,你需要确保你的结构体已经包含了所有你想要比较的成员变量。
然后,你需要定义一个函数,这个函数将返回两个结构体是否相等。这个函数通常会检查所有的成员变量是否都相等。
下面是一个简单的例子:
```cpp
struct Person {
std::string name;
int age;
std::string address;
bool operator==(const Person& other) const {
return name == other.name && age == other.age && address == other.address;
}
};
```
在这个例子中,我们定义了一个名为Person的结构体,它有三个成员变量:name、age和address。我们重写了等于运算符,使其比较两个Person对象的所有成员变量是否都相等。
现在,你可以使用这个重写后的等于运算符在你的程序中进行比较:
```cpp
Person person1 = {"John Doe", 30, "123 Main St."};
Person person2 = {"Jane Doe", 25, "456 Elm St."};
if (person1 == person2) {
std::cout << "People are equal." << std::endl;
} else {
std::cout << "People are not equal." << std::endl;
}
```
在这个例子中,我们创建了两个Person对象,并使用新的等于运算符比较它们是否相等。如果所有成员变量都相等,那么这个表达式将返回true,否则返回false。
阅读全文