C++ 运算符重载

来源:互联网 发布:java怎么卸载干净 编辑:程序博客网 时间:2024/06/16 20:43

技术,是实现目标的手段,重载运算符,可以让程序看起来更优美,更优美的程序更具有可读性,如果不重载,使用函数一样可以达到目的,但那样子程序看起来很蹩脚,直接上代码


      

#include<iostream>using namespace std;class Demo{private:int index;public:Demo(int i){index = i;}int GetIndex(){return index;}// 重载小于操作bool operator <(const Demo& d){if(this->index<d.index){return true;}return false;}// 重载 +const Demo operator +(const Demo& d){int sum = index + d.index;return Demo(sum);// 注意,这里一定要返回一个新对象}// 重载 >bool operator >(const Demo& d){if(this->index>d.index){return true;}return false;}// 重载 *const Demo operator *(const Demo& d){int multiply = index*d.index;return Demo(multiply);//返回新对象}// 重载 ++    ++aDemo operator ++(){index++;return *this;}// a++const Demo operator++(int x){Demo tmp = *this;this->index++;// 虽然执行了++操作,但是tmp里的值仍然是加1之前的值return tmp;}};

测试代码

#include"Demo.h"int main(){Demo d1(3);Demo d2(5);if(d1<d2){cout<<"小于"<<endl;}d1 = d1 + d2;if(d1>d2){cout<<"大于"<<endl;}d1 = d1*d2;cout<<d1.GetIndex()<<endl;d1++;cout<<d1.GetIndex()<<endl;++d1;cout<<d1.GetIndex()<<endl;return 1;}


0 0
原创粉丝点击