能否用enum型的数据类型作为函数的返回值类型?能给个例子么?

解决方案 »

  1.   

    就是这样写的了,通不过编译,如果把TRAFFIC_RULE改成int型一切就可以通过编译了。这是为什么?
    XXDoc.h
    ...
    enum TRAFFIC_RULE{MEETING, RIGHT_CROSSING = 2, LEFT_CROSSING = 3, OVERTAKING = 4}; typedef struct STATE_MEMOtag
    {
    int collisiontimes;
    vector<int> shipNo;
    vector<TRAFFIC_RULE> trule;
    }STATE_MEMO; STATE_MEMO m_smState[TMAX];private:
    TRAFFIC_RULE _TrafficeRule(FPOINT po, FPOINT pt);
    ...XXDoc.cpp
    TRAFFIC_RULE CMultiModeDoc::_TrafficeRule(FPOINT po, FPOINT pt)
    {
    TRAFFIC_RULE TRULE;
    float x, y;
    double A, a; x = pt.x - po.x;
    y = pt.y - po.y; if ( fabs(x) < 0.0001 && fabs(y) < 0.0001)
    {
    AfxMessageBox("ERR!");
    }
    else if ( fabs(x) < 0.0001)
    {
    if (y > 0) A = 0;
    else A = 180 * rad;
    }
    else TRULE = OVERTAKING; return TRULE;
    }void CMultiModeDoc::NavigationModel(int ntime)
    { TRAFFIC_RULE tstate;..............
    tstate = _TrafficeRule(m_sp[i].pn, m_sp[j].pn);
    m_smState[i].trule.push_back(tstate);
    ..............
    }
      

  2.   

    你用typedef把enum定义成一种数据类型比如:
    typedef enum{......} MyEnumType;
    然后用MyEnumType来作为返回类型试试看。
      

  3.   

    你是不是把TRAFFIC_RULE定义在类内了?
    把他定义在类的定义之外就可以了。
      

  4.   

    请问csdnzhu(我什么也不会) 为什么是这样?我按您说的试了,通过编译了。