friend bool operator用法示例
时间: 2023-07-14 22:10:34 浏览: 254
当重载运算符为友元函数时,可以通过以下示例来说明其用法:
```cpp
#include <iostream>
class MyClass {
private:
int value;
public:
MyClass(int v) : value(v) {}
friend bool operator==(const MyClass& obj1, const MyClass& obj2);
};
bool operator==(const MyClass& obj1, const MyClass& obj2) {
return obj1.value == obj2.value;
}
int main() {
MyClass obj1(10);
MyClass obj2(20);
MyClass obj3(10);
if (obj1 == obj2) {
std::cout << "obj1 and obj2 are equal" << std::endl;
} else {
std::cout << "obj1 and obj2 are not equal" << std::endl;
}
if (obj1 == obj3) {
std::cout << "obj1 and obj3 are equal" << std::endl;
} else {
std::cout << "obj1 and obj3 are not equal" << std::endl;
}
return 0;
}
```
在上面的示例中,我们定义了一个名为MyClass的类,其中包含一个私有成员变量value。我们通过重载==运算符作为友元函数,在其中比较两个对象的value值是否相等。在主函数中,我们创建了三个MyClass对象,并使用==运算符对它们进行比较。根据value值的不同,输出相应的结果。
输出结果为:
```
obj1 and obj2 are not equal
obj1 and obj3 are equal
```
通过这个示例,我们可以看到重载==运算符作为友元函数的用法。它使得我们可以直接在对象之间使用==运算符进行比较操作。
阅读全文