類定在哦orastatement.h聲明(內(nèi)有部分函數(shù)定義)段: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中函數(shù)定義段:bool COraBindVariable::CheckNullIndicator(){ m_ind = (m_pNullInd && m_pNullInd[0]) ? -1 : 0;return m_ind == -1;}備注:僅此函數(shù)在CPP中定義出錯(cuò)部分代碼:bool CBindVariableList::CopyToExtVarList(OCIError *pErr){ return ForEachItem(COraBindVariable::CopyToExtVar(),pErr);}return所調(diào)用函數(shù)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;}請(qǐng)個(gè)位高手前輩幫幫菜鳥小弟,其他信息:該類在.h文件中的子類有2個(gè)均為抽象類,另外編譯過程為csh腳本,頭文件已引入。
1 回答

一只斗牛犬
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
代碼號(hào)亂,好像不完整,初步分析如下:
bool CBindVariableList::CopyToExtVarList(OCIError *pErr)
{
return ForEachItem(COraBindVariable::CopyToExtVar(),pErr);
//這里,CopyToExtVar函數(shù)的返回值,是一個(gè)bool類型,作為第一個(gè)參數(shù)傳遞進(jìn)入ForEachItem函數(shù)
}
但是,
bool CBindVariableList::ForEachItem(bool (COraBindVariable::*func)(OCIError *),OCIError *pErr)
函數(shù)申明,第一個(gè)參數(shù),需要的是一個(gè)函數(shù)指針,所以出問題了。
希望對(duì)你有幫助!
- 1 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報(bào)
0/150
提交
取消