zoukankan      html  css  js  c++  java
  • Operator overload and inheritance

    默认, operator overload被继承时时隐藏的.

    代码
    //------------------------------------------------------
    class IComparor
    {
    public:
        
    virtual int operator()(int x, int y) = 0;
    };
    //------------------------------------------------------
    class ComparorA : public IComparor
    {
    public:
        
    using IComparor::operator();
        
    int operator()(int x, int y)
        {
            
    return x < y ? -1
                : x 
    > y ? 1
                : 
    0;
        }
    };
    //------------------------------------------------------
    class ComparorB : public IComparor
    {
    public:
        
    using IComparor::operator();
        
    int operator()(int x, int y)
        {
            
    return x < y ? 100
                : x 
    > y ? -100
                : 
    0;
        }
    };
    //------------------------------------------------------

    使用:

    IComparor* comparor = new ComparorB();
    int r1 = comparor->operator()(56);
    int r2 = (*comparor)(56);
  • 相关阅读:
    EZOJ #202
    EZOJ #201
    p5156 [USACO18DEC]Sort It Out
    p4363 [九省联考2018]一双木棋chess
    p2150 [NOI2015]寿司晚宴
    p5155 [USACO18DEC]Balance Beam
    p2414 [NOI2011]阿狸的打字机
    实验室断网的解决方案
    人需要看到未来
    门德尔松--罗辑思维
  • 原文地址:https://www.cnblogs.com/mrfangzheng/p/1715680.html
Copyright © 2011-2022 走看看