一、思维导图
二、练习题
1、写出三种构造函数,算术运算符、关系运算符、逻辑运算符重载尝试实现自增、自减运算符的重载
#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;
}