mrfangzheng

Hope and fear are useless. Be confident, and always be prepared for the worst.
  首页  :: 新随笔  :: 联系 :: 管理

Operator overload and inheritance

Posted on 2010-04-19 21:44  mrfangzheng  阅读(174)  评论(0编辑  收藏  举报

默认, 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);