为了账号安全,请及时绑定邮箱和手机立即绑定

觉得问题主要出在:ForEachItem函数的第一个参数的问题上,哪位前辈能够在这个参数上指点一下!

觉得问题主要出在:ForEachItem函数的第一个参数的问题上,哪位前辈能够在这个参数上指点一下!

C++
慕妹3242003 2023-01-07 21:17:22

类定在哦orastatement.h声明(内有部分函数定义)段:class COraBindVariable{ public: COraBindVariable(void *pSrc,unsigned char *pNullInd){ m_pBindNext = NULL;m_pvExtData = pSrc;m_pNullInd = pNullInd;CheckNullIndicator();}virtual ~COraBindVariable(){} virtual bool CheckNullIndicator();virtual sb4 OraDataSize()=0;virtual ub2 OraDataType()=0;virtual void *OraData(){return m_pvExtData;}virtual bool CopyToIntVar(OCIError *pErr){ CheckNullIndicator(); return true;}virtual bool CopyToExtVar(OCIError *pErr){ return true;}dvoid *GetIndicator(){return (dvoid *)&this->m_ind;}void *m_pvExtData;unsigned char *m_pNullInd;COraBindVariable *m_pBindNext;sb2 m_ind;}; 类在orastatement.cpp中函数定义段:bool COraBindVariable::CheckNullIndicator(){ m_ind = (m_pNullInd && m_pNullInd[0]) ? -1 : 0;return m_ind == -1;}备注:仅此函数在CPP中定义出错部分代码:bool CBindVariableList::CopyToExtVarList(OCIError *pErr){ return ForEachItem(COraBindVariable::CopyToExtVar(),pErr);}return所调用函数ForEachItem的定义:bool CBindVariableList::ForEachItem(bool (COraBindVariable::*func)(OCIError *),OCIError *pErr){ bool b = true;COraBindVariable *pVar = m_pBindVar;COraBindVariable *pNext;while(pVar){ pNext = pVar->m_pBindNext;if(! (pVar->*func)(pErr))b = false;pVar = pNext;}return b;}请个位高手前辈帮帮菜鸟小弟,其他信息:该类在.h文件中的子类有2个均为抽象类,另外编译过程为csh脚本,头文件已引入。

查看完整描述

1 回答

?
一只斗牛犬

TA贡献1553条经验 获得超2个赞

代码号乱,好像不完整,初步分析如下:
bool CBindVariableList::CopyToExtVarList(OCIError *pErr)

return ForEachItem(COraBindVariable::CopyToExtVar(),pErr);
//这里,CopyToExtVar函数的返回值,是一个bool类型,作为第一个参数传递进入ForEachItem函数
}
但是,
bool CBindVariableList::ForEachItem(bool (COraBindVariable::*func)(OCIError *),OCIError *pErr)
函数申明,第一个参数,需要的是一个函数指针,所以出问题了。
希望对你有帮助!

查看完整回答
反对 回复 2023-01-10

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信