偷偷拿来记录一下萌新的cs路——day 29
成员函数重载方式
#includeusing namespace std; // 加号运算符重载:两自定义数据类型相加的运算 class Person { public: // 成员函数重载+ Person operator+(Person& p) { Person temp; temp.m_A = this->m_A + p.m_A; temp.m_B = this->m_B + p.m_B; return temp; } int m_A; int m_B; }; void test01() { Person p1; p1.m_A = 10; p1.m_B = 10; Person p2; p2.m_A = 10; p2.m_B = 10; // 成员函数重载本质调用 //Person p3 = p1.operator+ (p2); Person p3 = p1 + p2; cout << "p3.m_A = " << p3.m_A << endl; cout << "p3.m_B = " << p3.m_B << endl; } int main() { test01(); return 0; }
运行结果
全局函数重载方式
#includeusing namespace std; // 加号运算符重载:两自定义数据类型相加的运算 class Person { public: int m_A; int m_B; }; // 全局函数重载+ Person operator+(Person& p1, Person& p2) { Person temp; temp.m_A = p1.m_A + p2.m_A; temp.m_B = p1.m_B + p2.m_B; return temp; } // 函数重载的版本 Person operator+(Person& p1, int num) { Person temp; temp.m_A = p1.m_A + num; temp.m_B = p1.m_B + num; return temp; } void test01() { Person p1; p1.m_A = 10; p1.m_B = 10; Person p2; p2.m_A = 10; p2.m_B = 10; // 全局函数重载本质调用 Person p3 = operator+(p1, p2); // 函数重载版本 Person p4 = p1 + 100; //Person p3 = p1 + p2; cout << "p3.m_A = " << p3.m_A << endl; cout << "p3.m_B = " << p3.m_B << endl; cout << "p4.m_A = " << p4.m_A << endl; cout << "p4.m_B = " << p4.m_B << endl; } int main() { test01(); return 0; }
运行结果
学了更多知识还会回来更新的,有误之处恳请大佬指正,提前感谢!



