GARANTIR DESCONTO

Fórum Vetores STL - acessando dados #61972

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

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

Aceitar