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循环