中国有多少个网站,超级软文网,mysql网站后台管理系统下载,网站服务器软件运算符重载概念#xff1a; 对已有的运算符重新定义#xff0c;赋予其另一种功能#xff0c;以适应不同的数据类型
加号运算符重载#xff1a; 1.成员函数重载加号#xff1a;
#include iostream
using namespace std;//加号运算符重载//1.成员函数重载号class …运算符重载概念 对已有的运算符重新定义赋予其另一种功能以适应不同的数据类型
加号运算符重载 1.成员函数重载加号
#include iostream
using namespace std;//加号运算符重载//1.成员函数重载号class Person {public://1.成员函数重载号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 p2;cout p3.m_A p3.m_A endl;cout p3.m_B p3.m_B endl;}int main() {test01();return 0;
}成员函数重载本质调用 Person p3 p1.operator(p2); 2.全局函数重载加号
#include iostream
using namespace std;//加号运算符重载class Person {public:int m_A;int m_B;
};//2.全局函数重载号
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;
}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 p2;cout p3.m_A p3.m_A endl;cout p3.m_B p3.m_B endl;}int main() {test01();return 0;
}全局函数重载本质调用 Person p3 operator(p1,p2); 运算符重载也可以发生函数重载 代码如下
#include iostream
using namespace std;//加号运算符重载class Person {public:int m_A;int m_B;
};//2.全局函数重载号
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 p1 p2;Person p4 p1 100;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 p3.m_B p4.m_B endl;}int main() {test01();return 0;
}总结1对于内置的数据类型的表达式的运算符是不可能改变的 总结2不要滥用运算符重载