C++有关问题请问了 多谢!帮小弟我解释下这段代码!

C++问题请教了 谢谢!!帮我解释下这段代码!!
cmd_cCmd::cmd_cCmd(   char   *   ppArgV[],     char   *   pOptionList)
:   m_ppArgV(ppArgV),  
    m_ppCurrentArg(ppArgV+1),
    m_pOptionList(pOptionList)
{   }
这段代码是什么意思?   是构造函数吗?
如果是构造函数那么cmd_cCmd::cmd_cCmd(   char   *   ppArgV[],     char   *   pOptionList)
之后应该是初始化代码吧?
那:   m_ppArgV(ppArgV),  
    m_ppCurrentArg(ppArgV+1),
    m_pOptionList(pOptionList)
这段是什么意思尼?
其中cmd_cCmd是一个类   定义如下:
class   cmd_cCmd   {
public:
cmd_cCmd(char   *[],     char   *   =   " ");   //第一个参数是一个指向char型数据的指针数组,第二个参数是一个char型指针

char   *   Arg()         {   return   m_pArg;   }
char       Option()   {   return   m_Option;   }
void       Reset()     {   m_ppCurrentArg   =   m_ppArgV;   }
char       Next();

private:
char         m_Option;
char   *     m_pArg;
char   **   m_ppCurrentArg;
char     *   m_pOptionList;
char   **   m_ppArgV;
};

------解决方案--------------------
答楼主:
你自己的判断没错, m_ppArgV(ppArgV), m_ppCurrentArg(ppArgV+1),m_pOptionList(pOptionList)这是初始化列表,把ppArgV一个char型数据的指针数组首地址赋值给成员变量m_ppArgV,ppArgV+1是下一个字串的首地址赋值给成员变量 m_ppCurrentArg,pOptionList是字串首地址赋值给成员变量m_pOptionList。
至于具体为什么如此赋值,那是程序设计者的意图。(整个的代码看明白了就知道了)