1

以下のコードを見てください。

//Base Cls declaration:

class CmdParser_c
{
    public:

    CmdParser_c(){}  
    virtual ~CmdParser_c(){} 

    BOOLEAN ParseInputCmd(UINT8*);
    virtual BOOLEAN ProcessInputCmd(UINT8* );
    virtual BOOLEAN ProcessInputCmdArgs(UINT8* cmdList_ptr, UINT8 noOfArgs);
}


//One of its member function definition:

BOOLEAN CmdParser_c::ParseInputCmd(UINT8* cmdBuff_ptr)
{
    CmdParser_c *tstObj[MAX_PARSERS]; // <-- creating array of base cls ptr

    RTCcmdParser_c    rtcTstObj;
    UiParser_c        uiP;

    tstObj[0] = &rtcTstObj;          // <-- assigning child1 cls obj
    tstObj[1] = &uiP;                // <-- assigning child2 cls obj 

    if (tstObj[0]->ProcessInputCmd(&inputCmd_ptr[0][0]))
    {
        // do something
    } 
    else if (tstObj[1]->ProcessInputCmd(&inputCmd_ptr[0][0]))
    {
        // do something
    } 
}

コードは機能しています。問題ありません。私の質問は、ランタイム ポリモーフィズムを実現するために、独自のメンバー関数内のクラスへの ptr の配列を作成することに問題がありますか? このロジックに何か問題がありますか?

4

1 に答える 1