您的位置:首页 > 编程语言 > C语言/C++

c++运算符重载

2016-07-30 09:14 246 查看
以下示例中定义了一个class test, 重载了<, +, +=, =, ==, <<, >>等符号:

#include<iostream>

#include<vector>

using namespace std;

class test{

public:

     int v;

  

     test():v(0){}

     test(const int &a):v(a){}

     test(const test &t1):v(t1.v){}

    

  

     //比较两个对象的大小

     bool operator<(const test &t1) const{

         return (v < t1.v);

     }

     //比较对象和int的大小

     bool operator<(const int &t1) const{

         return (v < t1);

     }

     //友元函数,比较int和对象的大小

     friend inline bool operator<(const int &a, const test & t1){

         return (a < t1.v);

     }

    

  

     //对象间赋值

     test & operator=(const test &t1){

         v = t1.v;

         return *this;

     }

     //int赋值给对象

     test & operator=(const int &t1){

         v = t1;

         return *this;

     }

    

  

     //对象加上 int

     test operator+(const int & a){

         test t1;

         t1.v = v + a;

         return t1;

     }

     //对象加对象

     test operator+(test &t1){

         test t2;

         t2.v = v + t1.v;

         return t2;

     }

    

     

     //对象加上对象

     test &operator+=(const test &t1){

         v += t1.v;

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: