#include <iostream>
struct Foo
{
int x;
int y;
};
struct Bar: public Foo
{
int another_x;
};
struct Baz: public Foo
{
int another_y;
};
void someFunction(const Foo &foo)
{
std::cout << foo.x << '\n';
std::cout << foo.y << '\n';
};
int main(int argc, char **argv)
{
Bar a;
Baz b;
a.x = 0;
a.y = 1;
b.x = 2;
b.y = 3;
someFunction(a);
someFunction(b);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEZvbwp7CiAgICBpbnQgeDsKICAgIGludCB5Owp9OwoKc3RydWN0IEJhcjogcHVibGljIEZvbwp7CiAgICBpbnQgYW5vdGhlcl94Owp9OwoKc3RydWN0IEJhejogcHVibGljIEZvbwp7CiAgICBpbnQgYW5vdGhlcl95Owp9OwoKdm9pZCBzb21lRnVuY3Rpb24oY29uc3QgRm9vICZmb28pCnsKICAgIHN0ZDo6Y291dCA8PCBmb28ueCA8PCAnXG4nOwogICAgc3RkOjpjb3V0IDw8IGZvby55IDw8ICdcbic7Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCnsKCUJhciBhOwoJQmF6IGI7CgoJYS54ID0gMDsKCWEueSA9IDE7CgliLnggPSAyOwoJYi55ID0gMzsKCQoJc29tZUZ1bmN0aW9uKGEpOwoJc29tZUZ1bmN0aW9uKGIpOwoKCXJldHVybiAwOwp9