C++编程语言可以被看做是C语言的升级版本,它能够支持C语言中的所有功能,而且在其他方面也有很大的提升。其中,在C++操作符重载中++,--需要说明是++(--)在操作数前面,还是在操作数后面,区别如下:
C++操作符重载代码经过测试无误(起码我这里没问题^_^)
- #include < iostream>
- #include < cstdlib>
- using namespace std;
- template< typename T> class A
- {
- public:
- A(): m_(0){
- }
- // +
- const T operator + (const T& rhs)
- {
- // need to be repaired , but see it is only a demo
- return (this->m_ + rhs);
- }
- // -
- const T operator - (const T& rhs){
- // need to be repaired , but see it is only a demo
- return (this->m_ - rhs);
- }
- T getM(){
- return m_;
- }
- // ++在前的模式,这里返回的是引用 ,准许++++A
- A& operator ++ (){
- (this->m_)++;
- return *this;
- }
- // ++ 在后,这里返回的是一个新的A类型变量,且不可改变
- // 目的是防止出现 A++++情况
- const A operator ++(int a){
- A< T> b = *this;
- (this->m_)++;
- return b;
- }
- private:
- T m_;
- };
- int main(void){
- int i = 0;
- cout< < ++++i< < endl;
- // i++++ is not allowed
- A< int> a;
- A< int> b = ++a;
- cout< < b.getM()< < endl;
- A< int> c = a++;
- cout< < c.getM()< < endl;
- cout< < a.getM()< < endl;
- int t = a+2;
- cout< < t< < endl;
- system("pause");
- return 0;
- }
以上就是对C++操作符重载的相关介绍。
【编辑推荐】