当前位置: 代码迷 >> C语言 >> 请示一下鄙视过我的版主几个问题,我面试微软的实战考题
  详细解决方案

请示一下鄙视过我的版主几个问题,我面试微软的实战考题

热度:166   发布时间:2008-04-17 15:02:14.0
潜心灌水……在写一个四则运算的小东西……想用上WTL的思想……嘿嘿

class CMyCalc : public CCalculateImpl<CMyCalc,double,CCalculateTraits>
{
public:
    DECLATE_CALC_NAME("My Calc:")

    BEGIN_OPT_MAP(CMyCalc)
        ADD_CALC_OPT("+",2,AddOpt)//操作符名称,优先级,处理函数
        ADD_CALC_OPT("-",2,SubOpt)
        ADD_OPT("*",OPT_LEFT,1,2,MulOpt)//操作符名称,结合方向,优先级,元,处理函数
        ADD_OPT("/",OPT_LEFT,1,2,DivOpt)
        ADD_BINARY_SEP("(",")",1,RoundSep)//左分隔符,右分隔符,分隔符优先级,处理函数
    END_OPT_MAP()

    double AddOpt(double lv,double rv)
    {
        return lv+rv;
    }

    //...

};

int main(void)
{
    CMyCalc calc;
    calc.SetFormula("(1+2)*3");
    cout<<calc;
    return 0;
}


[[it] 本帖最后由 StarWing83 于 2008-4-17 15:05 编辑 [/it]]
----------------解决方案--------------------------------------------------------