#include <iostream>
using namespace std;
// 构造函数示例
class MyClass {
private:
int data;
public:
// 默认构造函数
MyClass() {
data = 0;
}
// 带参数的构造函数
MyClass(int value) {
data = value;
}
// 拷贝构造函数
MyClass(const MyClass &obj) {
data = obj.data;
}
// 算术运算符重载
MyClass operator+(const MyClass &obj) {
MyClass temp;
temp.data = this->data + obj.data;
return temp;
}
// 关系运算符重载
bool operator==(const MyClass &obj) {
return this->data == obj.data;
}
// 逻辑运算符重载
bool operator&&(const MyClass &obj) {
return this->data && obj.data;
}
// 自增运算符重载
MyClass operator++() {
++data;
return *this;
}
// 自减运算符重载
MyClass operator--() {
--data;
return *this;
}
// 显示数据成员
void display() {
cout << "Data: " << data << endl;
}
};
int main() {
MyClass obj1(5);
MyClass obj2(3);
// 使用算术运算符重载
MyClass result = obj1 + obj2;
result.display();
// 使用关系运算符重载
if (obj1 == obj2) {
cout << "对象相等" << endl;
} else {
cout << "对象不相等" << endl;
}
// 使用逻辑运算符重载
if (obj1 && obj2) {
cout << "两个对象都具有非零值" << endl;
} else {
cout << "至少有一个对象的值为零" << endl;
}
// 使用自增运算符重载
++obj1;
obj1.display();
// 使用自减运算符重载
--obj2;
obj2.display();
return 0;
}