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。
至于具体为什么如此赋值,那是程序设计者的意图。(整个的代码看明白了就知道了)
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。
至于具体为什么如此赋值,那是程序设计者的意图。(整个的代码看明白了就知道了)