#include <iostream>
using namespace std;
class Enemy
{
public:
void SetAttackPower (int a)
{
AttackPower = a;
}
protected:
int AttackPower;
};
class Monster: public Enemy
{
public:
void attack ()
{
cout << "uaghhh. i am going to eat you -" << AttackPower << endl;
}
};
class Ninja: public Enemy
{
public:
void attack()
{
cout << "chop-chop -" << AttackPower << endl;
}
};
int main()
{
Ninja n;
Monster m;
/*
Enemy enemy1 = n;
Enemy enemy2 = m;
enemy1.SetAttackPower(22);
enemy2.SetAttackPower(25);
n.attack();
m.attack();
*/
Enemy *enemy1 = &n;
Enemy *enemy2 = &m;
enemy1 -> SetAttackPower(22);
enemy2 -> SetAttackPower(25);
n.attack();
m.attack();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgRW5lbXkKewpwdWJsaWM6CiAgICB2b2lkIFNldEF0dGFja1Bvd2VyIChpbnQgYSkKICAgIHsKICAgICAgICBBdHRhY2tQb3dlciA9IGE7CiAgICB9CnByb3RlY3RlZDoKICAgIGludCBBdHRhY2tQb3dlcjsKfTsKCmNsYXNzIE1vbnN0ZXI6IHB1YmxpYyBFbmVteQp7CiAgICBwdWJsaWM6CiAgICB2b2lkIGF0dGFjayAoKQogICAgewogICAgICAgIGNvdXQgPDwgInVhZ2hoaC4gaSBhbSBnb2luZyB0byBlYXQgeW91IC0iIDw8IEF0dGFja1Bvd2VyIDw8IGVuZGw7CiAgICB9Cn07CgpjbGFzcyBOaW5qYTogcHVibGljIEVuZW15CnsKICAgIHB1YmxpYzoKICAgIHZvaWQgYXR0YWNrKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJjaG9wLWNob3AgLSIgPDwgQXR0YWNrUG93ZXIgPDwgZW5kbDsKICAgIH0KfTsKCmludCBtYWluKCkKewogICAgTmluamEgbjsKICAgIE1vbnN0ZXIgbTsKICAgIC8qCiAgICBFbmVteSBlbmVteTEgPSBuOwogICAgRW5lbXkgZW5lbXkyID0gbTsKICAgIGVuZW15MS5TZXRBdHRhY2tQb3dlcigyMik7CiAgICBlbmVteTIuU2V0QXR0YWNrUG93ZXIoMjUpOwogICAgbi5hdHRhY2soKTsKICAgIG0uYXR0YWNrKCk7CiAgICAqLwogICAgRW5lbXkgKmVuZW15MSA9ICZuOwogICAgRW5lbXkgKmVuZW15MiA9ICZtOwogICAgZW5lbXkxIC0+IFNldEF0dGFja1Bvd2VyKDIyKTsKICAgIGVuZW15MiAtPiBTZXRBdHRhY2tQb3dlcigyNSk7CiAgICBuLmF0dGFjaygpOwogICAgbS5hdHRhY2soKTsKICAgIHJldHVybiAwOwp9