Vetores STL - acessando dados

02/01/2008

0

Olá,

Tenho uma classe Ponto e criei um método void Ponto::impressaoDeDados() que faz exatamente o que diz. Para armazenar várias instâncias dessa classe Ponto (mas na forma de ponteiros) criei um vetor STL da seguinte forma:

std::vector<Ponto*> ponto;

e seu iterador:

std::vector<Ponto*>::iterator ponto_itr;

Agora, gostaria de criar uma rotina que acessasse a função impressaoDeDados() para cada instância que estivesse no vetor ponto. Para isso, fiz o seguinte:

for(ponto_itr = ponto.begin(); ponto_itr != ponto.end(); ponto_itr++)
{
((Ponto*)(ponto_itr))->impressaoDeDados();
}

Qual é o erro disso? Meu compilador acusa:

1>.\Classe Pick Handler.cpp(73) : error C2440: ´type cast´ : cannot convert from ´std::_Vector_iterator<_Ty,_Alloc>´ to ´Ponto *´
1> with
1> [
1> _Ty=Ponto *,
1> _Alloc=std::allocator<Ponto *>
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called


Renanmzmendes

Renanmzmendes

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar