C++ 编程语言可以被看做是C语言的升级版本,它能够支持C语言中的所有功能,而且在其他方面也有很大的提升。其中,在C++操作符重载中++,--需要说明是++(--)在操作数前面,还是在操作数后面,区别如下:
C++操作符重载代码经过测试无误(起码我这里没问题^_^)
1.#include < iostream>
2.#include < cstdlib>
3.using namespace std;
www.601456.com 4.template< typename T> class A
5.{
6.public:
7.A(): m_(0){
8.}
9.// +
10.const T operator + (const T& rhs)
11.{
12.// need to be repaired , but see it is only a demo
13.return (this->m_ + rhs);
www.liuhebao.com 14.}
15.// -
16.const T operator - (const T& rhs){
17.// need to be repaired , but see it is only a demo
18.return (this->m_ - rhs);
www.yzjxsp.com 19.}
20.T getM(){
21.return m_;
22.}
23.// ++在前的模式,这里返回的是引用 ,准许++++A
24.A& operator ++ {
www.yzyedu.com 25.(this->m_)++;
26.return *this;
27.}
28.// ++ 在后,这里返回的是一个新的A类型变量,且不可改变
29.// 目的是防止出现 A++++情况
30.const A operator ++(int a){
31.A< T> b = *this;
32.(this->m_)++;
33.return b;
34.}
35.private:
36.T m_;
37.};
38.int main(void){
39.int i = 0;
www.yzjjx.com 40.cout< < ++++i< < endl;
41.// i++++ is not allowed
42.A< int> a;
43.A< int> b = ++a;
44.cout< < b.getM()< < endl;
45.A< int> c = a++;
46.cout< < c.getM()< < endl;
47.cout< < a.getM()< < endl;
48.int t = a+2;
www.yzsws.com 49.cout< < t< < endl;
50.system("pause");
51.return 0;
52.}
www.szfuao.com 以上就是对C++操作符重载的相关介绍。