可视化解决VS 2003中指向成员错误的c++指针
visual Resolve c++ pointer-to-member error in VS 2003
我有一个c++程序,我正试图将它从VS98移植到VS2003(增量步骤)。贯穿始终的一个错误是"错误2275"
例如:k:\RR\chart\chartdlg.cpp(2025):错误C2475:"CRrDoc::cFldFilter":形成指向成员的指针需要显式使用运算符("&")的地址和限定名
违规代码如下所示:
void CDataPage::OnBtnLabelField()
{
FLDID fid ;
LPMFFIELD f ;
CRrApp *pApp = (CRrApp *)AfxGetApp();
CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();
CRrDoc *pDoc = (CRrDoc *)pFrame->GetActiveDocument();
CSelectFieldDlg dlg;
//**************************************************
//BOOL CRrDoc::*zcFldFilter = &CRrDoc::cFldFilter;
//dlg.ck = CRrDoc->*zcFldFilter;
//**************************************************
dlg.ck = pDoc->cFldFilter ;
dlg.TitleTextID = IDS_2676;
fid = (FLDID)dlg.DoModal();
if (fid != NOID)
{
f = pDoc->m_pComposite->mfbyndx(fid);
// find index
int i, iCount;
iCount = m_lboxLabel.GetCount();
for (i = 0; i < iCount; i++)
{
if(fid == m_lboxLabel.GetItemData(i))
{
m_lboxLabel.SetCurSel(i);
OnSelchangeComboLabel();
}
}
}
}
我试着根据微软的一个页面来处理它:但这只是产生了一系列其他问题(星号之间的注释代码)。请注意,我还注释了以下行:
dlg.ck = pDoc->cFldFilter
不幸的是,这导致了一个新的错误:k:\RR\chart\chartdlg.cpp(2022):错误C2440:"初始化":无法从"BOOL(__cdecl)(LPMFFIELD)"转换为"BOOL CRrDoc::"
H.文件中的定义如下:
public:
static BOOL cFldFilter(LPMFFIELD f);
有什么想法如何处理指向成员的指针问题吗?
因为您有:
static BOOL CRrDoc::cFldFilter(LPMFFIELD f);
它的类型不是成员变量,而是一个函数:
//BOOL CRrDoc::*zcFldFilter = &CRrDoc::cFldFilter; // doesn't work
BOOL (*zcFldFilter)(LPMFFIELD) = &CRrDoc::cFldFilter; // works
由于dlg.ck是正确的类型,您应该执行
dlg.ck = &CRrDoc::cFldFilter;
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++错误消息*成员参考.**初学者*
- C++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)
- 为什么类中的ostringstream类型的成员会导致";调用隐含删除复制构造函数";错误
- 在运算符重载定义中使用成员函数(const错误)
- 错误:请求非类类型为"MULTIMEDIA_FILME [500]"的成员|
- 使用带有 ref 参数的成员函数创建线程时出现编译错误
- 静态成员函数使用相同的名称时出现模板类型名称错误
- 为什么即使我声明了朋友类,我也会收到错误"无法访问类中声明的私人成员"
- 为什么我在空指针错误(链表)中获取成员访问权限
- WinLamb 错误:成员初始化非法
- 类成员值的合法或错误成员用法
- for 循环说 - 错误 成员引用基类型"int [13]"不是结构或联合
- C++错误:成员声明末尾的预期“;”
- C++:错误:成员访问不完整的类型,未使用的参数[-Werror,-Wunused-parameter]
- 错误:成员函数不能在其类之外声明
- 初始化 cpp 文件中的私有静态成员变量.错误:成员是私有的
- 错误:成员访问不完整类型:前向声明
- 错误:成员不可访问
- 指向基类错误成员函数的指针