#include <iostream>
#include <cstdlib>
#include <numeric>
using namespace std;
class Bullet{
public:
virtual float damagePerShot()=0;
virtual void animationOfShot()=0;
virtual ~Bullet(){}
};
class Explosive: public Bullet{
protected:
void animationOfShot()
{
cout<<"BooM !!!\n";
}
float damagePerShot()
{
return 7.4;
}
public:
virtual ~Explosive(){}
};
class Magazine{
Bullet *bullets[30];
int newBullet,bulletType;
float damageOfShot;
public:
Magazine()
{
...
damageOfShot=0.0;
}
void addBulletsToMagazine()
{
...
}
float damageOfShots()
{
damageOfShot=0.0;
for(int i=0;i<newBullet;i++)
{
damageOfShot+=bullets[i]->damagePerShot();
}
return damageOfShot;
}
};
class Gun{
Magazine *full_magazine;
int howBullets,typeBullets;
float totalDamageOfMagazine;
public:
Gun(int bulletsHowMuch)
{
...
howBullets=bulletsHowMuch;
full_magazine=new Magazine;
totalDamageOfMagazine=0.0;
}
void createGun()
{
for(int i=0;i<howBullets;i++)
{
(*full_magazine).addBulletsToMagazine();
}
}
float totalDamageOfGun()
{
return (*full_magazine).damageOfShots();
}
};
ostream& operator<<(ostream &totalDamageOfGun,Gun &gun)
{
totalDamageOfGun<<gun.totalDamageOfGun();
return totalDamageOfGun;
}
int main()
{
int ile_naboi;
cout<<"Ile chcesz wystrzelic naboi?\n";
cin>>ile_naboi;
Gun M4(ile_naboi);
M4.createGun();
cout<<"\nSuma zadanych obrazen: "<<M4;
Gun M3=M4;
cout<<"\nSuma zadanych obrazen: "<<M3;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPG51bWVyaWM+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQnVsbGV0ewogIHB1YmxpYzoKICAgIHZpcnR1YWwgZmxvYXQgZGFtYWdlUGVyU2hvdCgpPTA7CiAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uT2ZTaG90KCk9MDsKICAgIHZpcnR1YWwgfkJ1bGxldCgpe30KfTsKCmNsYXNzIEV4cGxvc2l2ZTogcHVibGljIEJ1bGxldHsKICBwcm90ZWN0ZWQ6CiAgICB2b2lkIGFuaW1hdGlvbk9mU2hvdCgpCiAgICB7CiAgICAgICAgY291dDw8IkJvb00gISEhXG4iOwogICAgfQogICAgZmxvYXQgZGFtYWdlUGVyU2hvdCgpCiAgICB7CiAgICAgICAgcmV0dXJuIDcuNDsKICAgIH0KICBwdWJsaWM6CiAgICB2aXJ0dWFsIH5FeHBsb3NpdmUoKXt9Cn07CgoKCmNsYXNzIE1hZ2F6aW5lewogICAgQnVsbGV0ICpidWxsZXRzWzMwXTsgCiAgICBpbnQgbmV3QnVsbGV0LGJ1bGxldFR5cGU7CiAgICBmbG9hdCBkYW1hZ2VPZlNob3Q7CiAgcHVibGljOgogICAgTWFnYXppbmUoKQogICAgewogICAgICAgIC4uLgogICAgICAgIGRhbWFnZU9mU2hvdD0wLjA7CiAgICB9CiAgICB2b2lkIGFkZEJ1bGxldHNUb01hZ2F6aW5lKCkKICAgIHsKICAgIAkuLi4KICAgIH0KICAgIGZsb2F0IGRhbWFnZU9mU2hvdHMoKQogICAgewogICAgICAgIGRhbWFnZU9mU2hvdD0wLjA7CiAgICAgICAgZm9yKGludCBpPTA7aTxuZXdCdWxsZXQ7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgZGFtYWdlT2ZTaG90Kz1idWxsZXRzW2ldLT5kYW1hZ2VQZXJTaG90KCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYW1hZ2VPZlNob3Q7CiAgICB9Cn07CgpjbGFzcyBHdW57CiAgICBNYWdhemluZSAqZnVsbF9tYWdhemluZTsKICAgIGludCBob3dCdWxsZXRzLHR5cGVCdWxsZXRzOwogICAgZmxvYXQgdG90YWxEYW1hZ2VPZk1hZ2F6aW5lOwogIHB1YmxpYzoKICAgIEd1bihpbnQgYnVsbGV0c0hvd011Y2gpCiAgICB7CiAgICAgICAgLi4uCiAgICAgICAgaG93QnVsbGV0cz1idWxsZXRzSG93TXVjaDsKICAgICAgICBmdWxsX21hZ2F6aW5lPW5ldyBNYWdhemluZTsKICAgICAgICB0b3RhbERhbWFnZU9mTWFnYXppbmU9MC4wOwogICAgfQogICAgdm9pZCBjcmVhdGVHdW4oKQogICAgewogICAgICAgIGZvcihpbnQgaT0wO2k8aG93QnVsbGV0cztpKyspCiAgICAgICAgewogICAgICAgICAgICAoKmZ1bGxfbWFnYXppbmUpLmFkZEJ1bGxldHNUb01hZ2F6aW5lKCk7CiAgICAgICAgfQogICAgfQogICAgZmxvYXQgdG90YWxEYW1hZ2VPZkd1bigpCiAgICB7CiAgICAgICAgcmV0dXJuICgqZnVsbF9tYWdhemluZSkuZGFtYWdlT2ZTaG90cygpOwogICAgfQp9OwoKb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtICZ0b3RhbERhbWFnZU9mR3VuLEd1biAmZ3VuKQp7CiAgICB0b3RhbERhbWFnZU9mR3VuPDxndW4udG90YWxEYW1hZ2VPZkd1bigpOwogICAgcmV0dXJuIHRvdGFsRGFtYWdlT2ZHdW47Cn0KCmludCBtYWluKCkKewogICAgaW50IGlsZV9uYWJvaTsKICAgIGNvdXQ8PCJJbGUgY2hjZXN6IHd5c3RyemVsaWMgbmFib2k/XG4iOwogICAgY2luPj5pbGVfbmFib2k7CiAgICBHdW4gTTQoaWxlX25hYm9pKTsKICAgIE00LmNyZWF0ZUd1bigpOwogICAgY291dDw8IlxuU3VtYSB6YWRhbnljaCBvYnJhemVuOiAiPDxNNDsKICAgIEd1biBNMz1NNDsKICAgIGNvdXQ8PCJcblN1bWEgemFkYW55Y2ggb2JyYXplbjogIjw8TTM7Cn0K
prog.cpp: In constructor ‘Magazine::Magazine()’:
prog.cpp:37:9: error: expected primary-expression before ‘...’ token
...
^
prog.cpp:37:9: error: expected ‘;’ before ‘...’ token
prog.cpp: In member function ‘void Magazine::addBulletsToMagazine()’:
prog.cpp:42:6: error: expected primary-expression before ‘...’ token
...
^
prog.cpp:42:6: error: expected ‘;’ before ‘...’ token
prog.cpp: In constructor ‘Gun::Gun(int)’:
prog.cpp:62:9: error: expected primary-expression before ‘...’ token
...
^
prog.cpp:62:9: error: expected ‘;’ before ‘...’ token