Array
(
)

Vetores STL - acessando dados

Renanmzmendes
   - 02 jan 2008

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