I want to have a vector with objects "Rectangle" and "Triangle". I want to run a function from specific index of vector. Why it calls function from parent class? Code will explain my problem better than my description :)
#include <iostream>
#include <vector>
class Shape {
public:
virtual void info() {std::cout << "IM BASE CLASS - SHAPE" <<std::endl;}
};
class Rectangle: public Shape {
public:
void info () {std::cout << "IM RECTANGLE :" <<std::endl;}
};
class Triangle: public Shape {
public:
void info () {std::cout << "IM TRIANGLE :" <<std::endl;}
};
int main() {
Rectangle rec;
Triangle tri;
std::vector<Shape> v;
v.push_back(rec);
v.push_back(tri);
std::vector<Shape>::iterator it;
for( it=v.begin(); it!=v.end(); ++it )
{
it->info();
}
return 0;
}