问题描述
- error C2064: 项不会计算为接受 0 个参数的函数
-
编译时出错。
出错行:
for (iterAcceItem j = objAccelerator.p_accle_items().begin(); j != objAccelerator.p_accle_items().end(); j++)相关代码:
typedef vector::iterator itAccelerator;
for (itAccelerator i = m_Accelerators.begin(); i != m_Accelerators.end(); i++)
{
CAccelerator objAccelerator = (CAccelerator)*i;if (resource_id.Compare(objAccelerator.get_tablename()) == 0) { typedef vector<CAcceleratorItem*>::iterator iterAcceItem; for (iterAcceItem j = objAccelerator.p_accle_items().begin(); j != objAccelerator.p_accle_items().end(); j++) { CAcceleratorItem* pobjAcceleratorItem = (CAcceleratorItem*)*j; nIndex=m_ctrl_list.InsertItem( 0,pobjAcceleratorItem->get_id());//成功则返回0 m_ctrl_list.SetItemText( nIndex, 1, pobjAcceleratorItem->get_options()); m_ctrl_list.SetItemText( nIndex, 2, pobjAcceleratorItem->get_Event()); m_ctrl_list.SetItemText( nIndex, 3, pobjAcceleratorItem->get_Type()); } }
-------CAccelerator.h --------
#pragma once
#include "CAcceleratorItem.h"
#include "AutoProperty.h"
#include
#include "CAutoRes.h"using namespace std;
class CAccelerator
:public CAutoRes
{
public:
CAccelerator(void);
~CAccelerator(void);AUTO_PROPERTY(CString,tablename) AUTO_PROPERTY(CString,prefix) //前缀 BEGIN vector<CAcceleratorItem*> p_accle_items; AUTO_PROPERTY(CString,postfix) //后缀 END
};
解决方案
objAccelerator.p_accle_items
这个是类成员吧不是函数,p_accle_items后面括号去掉。
解决方案二:
C/C++ 编译报错 error C2064: 项不会计算为接受 2 个参数的函数
解决方案三:
objAccelerator.p_accle_items()
这个是一个函数返回的vector还是什么类型。
你用一个变量先接收 objAccelerator.p_accle_items(),然后再for循环
时间: 2024-09-15 07:05:44