#include <iostream>
using namespace std;
class job_interface {
public:
virtual void job() = 0;
};
class job1 : public job_interface {
public:
virtual void job() { cout << "job1" << endl; }
};
class job2 : public job_interface {
public:
virtual void job() { cout << "job2" << endl; }
};
int main()
{
job1 j1;
job2 j2;
job_interface *jobs[] = { &j1, &j2 };
for (int i = 0; i < sizeof(jobs) / sizeof(jobs[0]); i++) {
jobs[i]->job();
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3Mgam9iX2ludGVyZmFjZSB7CnB1YmxpYzoKCXZpcnR1YWwgdm9pZCBqb2IoKSA9IDA7Cn07CgpjbGFzcyBqb2IxIDogcHVibGljIGpvYl9pbnRlcmZhY2UgewpwdWJsaWM6Cgl2aXJ0dWFsIHZvaWQgam9iKCkgeyBjb3V0IDw8ICJqb2IxIiA8PCBlbmRsOyB9Cn07CgpjbGFzcyBqb2IyIDogcHVibGljIGpvYl9pbnRlcmZhY2UgewpwdWJsaWM6Cgl2aXJ0dWFsIHZvaWQgam9iKCkgeyBjb3V0IDw8ICJqb2IyIiA8PCBlbmRsOyB9Cn07CgppbnQgbWFpbigpCnsKCWpvYjEgajE7Cglqb2IyIGoyOwoKCWpvYl9pbnRlcmZhY2UgKmpvYnNbXSA9IHsgJmoxLCAmajIgfTsKCglmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihqb2JzKSAvIHNpemVvZihqb2JzWzBdKTsgaSsrKSB7CgkJam9ic1tpXS0+am9iKCk7Cgl9Cn0=