#include <iostream>
using namespace std;
struct IYoba {
virtual int operator ()(int a, int b) = 0;
};
struct MyYoba1 : public IYoba {
int operator()(int a, int b) {
return a+b;
}
};
void Yobable(IYoba& yoba) {
cout << yoba(1, 2) << endl;
}
int main(void) {
MyYoba1 yoba;
Yobable(yoba);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBJWW9iYSB7Cgp2aXJ0dWFsIGludCBvcGVyYXRvciAoKShpbnQgYSwgaW50IGIpID0gMDsKCn07CgpzdHJ1Y3QgTXlZb2JhMSA6IHB1YmxpYyBJWW9iYSB7CgppbnQgb3BlcmF0b3IoKShpbnQgYSwgaW50IGIpIHsKCXJldHVybiBhK2I7Cn0KCn07CgoKdm9pZCBZb2JhYmxlKElZb2JhJiB5b2JhKSB7CiAgICBjb3V0IDw8IHlvYmEoMSwgMikgPDwgZW5kbDsKfQoKaW50IG1haW4odm9pZCkgewoJTXlZb2JhMSB5b2JhOwoJWW9iYWJsZSh5b2JhKTsKCXJldHVybiAwOwp9Cg==