C++中操作符重载
2014-01-05 02:01
351 查看
需要注意的地方:
写一个比较简单的例子:
可以重载的操作符:
不可以重载的操作符:
写一个比较简单的例子:
#include<iostream> #include<ostream> using namespace std; class A { public: int a; int b; A(int _a = 0 , int _b = 0):a(_a),b(_b){} A& operator = (const A &_a) { a = _a.a; b = _a.b; return *this; } //++i A& operator ++() { ++a; ++b; return *this; } //i++ A operator ++(int) { A temp = *this; a++; b++; return temp; } //注意这里不是返回的引用,因为如果使用引用用来返回,将得到的相当于++i了,比如: /* A& operator ++(int) { A& temp = *this; a++; b++; return temp; } */ friend A operator + (const A &_a , const A &_b); friend A operator - (const A &_a , const A &_b); friend A operator * (const A &_a , const A &_b); friend A operator / (const A &_a , const A &_b); friend istream& operator >> (istream &input,A& _a); friend ostream& operator << (ostream &output,A& _a); }; istream& operator >> (istream &input,A& _a) { input>>_a.a >>_a.b; return input; } ostream& operator << (ostream &output,A& _a) { output<<"a = "<<_a.a <<", b = "<< _a.b << endl; return output; } A operator + (const A &_a , const A &_b) { A result = A(0,0); result.a = _a.a + _b.a; result.b = _a.b + _b.b; return result; } A operator - (const A &_a , const A &_b) { A result = A(0,0); result.a = _a.a - _b.a; result.b = _a.b - _b.b; return result; } A operator * (const A &_a , const A &_b) { A result = A(0,0); result.a = _a.a * _b.a; result.b = _a.b * _b.b; return result; } A operator / (const A &_a , const A &_b) { A result = A(0,0); result.a = _a.a / _b.a; result.b = _a.b / _b.b; return result; } int main() { A _a = A(2,4); A _b = A(1,2); A _c ; cin >> _c; cout <<"_c : "<< _c <<"\n"; cout <<"++ _c : "<< ++_c <<"\n"; cout <<"_c ++ : "<< _c++ <<"\n"; cout <<"_c : "<< _c <<"\n"; cout <<"_a + _b : "<<_a + _b<<"\n"; cout <<"_a - _b : "<<_a - _b<<"\n"; cout <<"_a * _b : "<<_a * _b<<"\n"; cout <<"_a / _b : "<<_a / _b<<"\n"; return 0; }
可以重载的操作符:
不可以重载的操作符:
相关文章推荐
- C++中的操作符重载
- C++基础学习笔记----第十三课(操作符重载-下)
- c++学习心得(pair,操作符重载,this)
- 模板类中操作符重载问题("<<"和">>"重载)[c++]
- C++——操作符重载
- c++ 操作符重载
- C++ 操作符重载
- 关于C++中操作符重载的问题
- 关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)
- C/C++: 操作符重载案例
- C++学习笔记(七)--操作符重载 友元函数 类的继承 访问控释protected
- C++ 操作符重载
- 《优先队列》使用及操作符重载——C++
- c++之基础知识(2)重载 操作符重载
- C++中的操作符重载
- C++之操作符重载
- C++之操作符重载
- 【C++笔记】《C++ Primer Plus》学习笔记——操作符重载(一)
- C++ 类型转换操作与操作符重载 operator type() 与 type operator()
- C++ 操作符重载