繁体   English   中英

错误5错误C2039:'update':不是'std :: _ Vector_iterator <_Myvec>'的成员

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM