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后面括号去掉。
答
objAccelerator.p_accle_items()
这个是一个函数返回的vector还是什么类型。
你用一个变量先接收 objAccelerator.p_accle_items(),然后再for循环