[英]Error 5 error C2039: 'update' : is not a member of 'std::_Vector_iterator<_Myvec>'
这可能很简单,我尝试包含相关内容,但是我有一个名为bullet.h的头文件。
#include "basetype.h"
#include <iostream>
#include "draw.h"
#include "player.h"
class bullet : public basetype, draw
{
public:
bullet();
~bullet();
void update();
void setposition(player &commando);
};
#endif
有cpp
#include < iostream >
#include "bullet.h"
#include "AIE.h"
bullet::bullet()
{
sprite = CreateSprite( "./images/commando.png", 85, 85, true );
}
bullet::~bullet()
{
DestroySprite (sprite);
}
void bullet::update()
{
MoveSprite ( sprite, position.fposX, position.fposY );
drawsprite();
position.fposY +=4.f;
}
在basetype.h中,我包括<vector>和<iterator>
所以我主要有这个问题
std::vector<bullet*> oBullets;
std::vector<bullet*> :: iterator iterator;
if (IsKeyDown (' '))
{
oBullets.push_back(new bullet());
}
for (iterator = oBullets.begin(); iterator != oBullets.end(); iterator++)
{
*iterator.update();
}
而且不断使我感到更新不是迭代器的成员,但据我所知,我将迭代器设置为项目符号,并且bullet.update()应该存在,因此很笨拙,感觉像个白痴
向量的元素是指针,因此您需要两个解引用:一个用于迭代器,一个用于指针:
(*iterator)->update();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.