#include <iostream>
using namespace std;
struct Number
{
virtual ~Number() = default;
};
struct Integer : Number
{
int num = 0;
void sum(const Number& n)
{
num += static_cast<const Integer&>(n).num;
}
};
int main()
{
Integer i1;
i1.num = 31337;
Integer i2;
i2.num = 31338;
i2.sum(i1);
cout << i2.num << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE51bWJlcgp7Cgl2aXJ0dWFsIH5OdW1iZXIoKSA9IGRlZmF1bHQ7Cn07CgpzdHJ1Y3QgSW50ZWdlciA6IE51bWJlcgp7CglpbnQgbnVtID0gMDsKCXZvaWQgc3VtKGNvbnN0IE51bWJlciYgbikKCXsKCQludW0gKz0gc3RhdGljX2Nhc3Q8Y29uc3QgSW50ZWdlciY+KG4pLm51bTsKCX0KfTsKCgppbnQgbWFpbigpIAp7CglJbnRlZ2VyIGkxOwoJaTEubnVtID0gMzEzMzc7CglJbnRlZ2VyIGkyOwoJaTIubnVtID0gMzEzMzg7CglpMi5zdW0oaTEpOwoJY291dCA8PCBpMi5udW0gPDwgZW5kbDsKCXJldHVybiAwOwp9