9-加号运算符重载

简介: 9-加号运算符重载
#include<bits/stdc++.h>
using namespace std;
//加号运算符重载
//1、通过成员函数重载 
//2、通过全局函数重载
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;
}; 
//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 p,int num){
  Person temp;
  temp.m_A=p.m_A+num;
  temp.m_B=p.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 p3=p1.operator+(p2); 
  Person p3=p1+p2;
  //全局函数的本质调用
  //Person p3= operator+(p1,p2)
  cout<<"p3.m_A= "<<p3.m_A<<endl;
  cout<<"p3.m_B= "<<p3.m_B<<endl;
  //运算符重载 也可以发生函数重载
  Person p4=p1+100;
  cout<<"p4.m_A= "<<p4.m_A<<endl;
  cout<<"p4.m_B= "<<p4.m_B<<endl;
}
int main()
{
//运算符重载
//运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 
  test01();
  return 0;
 } 


相关文章
|
6月前
|
C++
40 C++ - 符号重载总结
40 C++ - 符号重载总结
26 0
|
7月前
|
存储 C语言
C语言操作符[算数操作符,赋值操作符,单目操作符,移位操作符]
C语言操作符[算数操作符,赋值操作符,单目操作符,移位操作符]
|
2天前
|
编译器 C++
C++|运算符重载(1)|为什么要进行运算符重载
C++|运算符重载(1)|为什么要进行运算符重载
|
2天前
|
C语言 C++
C++|运算符重载(2)|运算符重载的方法与规则
C++|运算符重载(2)|运算符重载的方法与规则
|
6月前
|
编译器 C++
34 C++ - 自增自减(++/--)运算符重载
34 C++ - 自增自减(++/--)运算符重载
18 0
|
12月前
10-左移运算符重载
10-左移运算符重载
C++:运算符重载与类的赋值运算符重载函数
C++:运算符重载与类的赋值运算符重载函数
|
编译器 C++
<C++>运算符重载进阶之左移运算符,输出成员属性一步到位
<C++>运算符重载进阶之左移运算符,输出成员属性一步到位
206 0
|
编译器 C++
C++运算符重载之加号运算符重载
加号运算符重载 作用:实现两个自定义数据类型相加的运算 1.成员函数实现 + 号运算符重载 2.全局函数实现 + 号运算符重载 3.运算符重载 可以发生函数重载
73 0
C++运算符重载之加号运算符重载
|
编译器 C++
C++运算符重载(二)之左移运算符重载
左移运算符重载 作用:可以输出自定义数据类型 1.利用成员函数实现左移运算符 class Person { public: Person(int a, int b) { this->m_A = a; this->m_B = b; } //利用成员函数实现左移运算符:p.operator<<(cout)简化版本p << cout 无法实现cout在左边。 //成员函数 p << p 不是我们想要的效果,想要cout<<p
124 1
C++运算符重载(二)之左移运算符重载