zoukankan      html  css  js  c++  java
  • 算法竞赛模板 重载运算符

    ①重载string()

    以日期类CDate为例:

    class CDate{
    public:
        int y,m,d;
        CDate(int y,int m,int d):y(y),m(m),d(d){}
        operator string()
        {
            string s;
            stringstream ss;
            ss<<y<<"-"<<m<<"-"<<d;
            ss>>s;
            return s;
        }
    };
    int main()
    {
        int y,m,d;
        while(cin>>y>>m>>d)
        {
            CDate date(y,m,d);
            cout<<(string)date<<endl;
        }
    }

    ②重载cin cout +  -  *  /

    以整数类Integer为例:

    class Integer{
    public:
        int a;
        Integer(int a):a(a){}
        Integer():a(0){}
        friend istream &operator>>(istream &is,Integer&x)
        {
            is>>x.a;
            if(!is)
                x=Integer();
            return is;
        }
        friend ostream &operator<<(ostream &os,const Integer&x)
        {
            os<<x.a;
            return os;
        }
        Integer operator+(const Integer&x)const
        {
            Integer t;
            t.a=this->a+x.a;
            return t;
        }
        Integer operator-(const Integer&x)const
        {
            Integer t;
            t.a=this->a-x.a;
            return t;
        }
        Integer operator*(const Integer&x)const
        {
            Integer t;
            t.a=this->a*x.a;
            return t;
        }
        Integer operator/(const Integer&x)const
        {
            Integer t;
            t.a=this->a/x.a;
            return t;
        }
    };
    int main()
    {
        Integer a, b;
        while(cin>>a>>b)
        {
            cout<<a+b<<" "<<a-b<<" "<<a*b<<" "<<a/b<<endl;
        }
        return 0;
    }
  • 相关阅读:
    C/C++利用gsoap库调用WebService
    常用的一些SQL语句
    C# 异步编程
    jQuery学习基础总结
    LINQ↔Lambda↔SQL 互相“翻译”
    NPOI 利用DataTable导出Excel 2003和2007
    图像二值化处理
    spring整合JMS
    RestTemplate使用
    Spring数据源配置
  • 原文地址:https://www.cnblogs.com/kannyi/p/9523590.html
Copyright © 2011-2022 走看看