How to call a method withgin a vector?

Posted by Mike Dooley on Stack Overflow See other posts from Stack Overflow or by Mike Dooley
Published on 2010-05-14T10:01:14Z Indexed on 2010/05/14 10:04 UTC
Read the original article Hit count: 216

Filed under:
|
|

Hi!

How do I call a method of an object which is stored within a vector? The following code fails...

    ClassA* class_derived_a = new ClassDerivedA;
    ClassA* class_another_a = new ClassAnotherDerivedA;



  vector<ClassA*> test_vector;

  test_vector.push_back(class_derived_a);
  test_vector.push_back(class_another_a);

 for (vector<ClassA*>::iterator it = test_vector.begin(); it != test_vector.end(); it++)
    it->printOutput();

The code retrieves the following error:

test3.cpp:47: error: request for member ‘printOutput’ in ‘* it.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator-> with _Iterator = ClassA**, _Container = std::vector >’, which is of non-class type ‘ClassA*’

The problem seems to be it->printOutput(); but at the moment I don't know how to call the method properly, does anyone know?

regards mikey

© Stack Overflow or respective owner

Related posts about c++

Related posts about stl