运算符重载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符重载相关的知识,希望对你有一定的参考价值。
1 #include <iostream> 2 3 using namespace std; 4 5 class Complex 6 { 7 private: 8 int a, b; 9 public: 10 Complex(int a, int b) :a(a), b(b) 11 {} 12 13 // Complex& operator+(Complex &c) //放在类里 14 // { 15 // this->a = this->a + c.a; 16 // this->b = this->b + c.b; 17 // return *this; 18 // } 19 20 friend Complex& operator+(Complex &c1, Complex &c2); 21 }; 22 23 Complex& operator+(Complex &c1, Complex &c2) //放在类外,如果a, b不是类Complex的私有变量的话,是可以不用friend函数来声明重载函数的, 这就是以前在cocos2d-x里学到的全局重载函数 24 { 25 Complex c3(1, 1); 26 c3.a = c1.a + c2.a; 27 c3.b = c1.b + c2.b; 28 return c3; 29 } 30 31 int main() 32 { 33 Complex c1(1, 2), c2(3, 4); 34 Complex c3 = c1 + c2; 35 36 system("pause"); 37 return 0; 38 }
两种方式重载
二元运算符
全局(友元) 必须有两个参数,分别代表左右操作数
成员 只能有一个参数代表右操作数,左操作数由this指针隐藏代替,
以上是关于运算符重载的主要内容,如果未能解决你的问题,请参考以下文章