#include <iostream>
#include <vector>
using namespace std;
class Ship
{
public:
Ship(){}
Ship(string name, int distance)
{
mName = name;
mDistance = distance;
}
~Ship(){}
friend ostream & operator << (ostream &out, const Ship &ship);
private:
string mName;
int mDistance;
};
ostream & operator << (ostream &out, const Ship &ship)
{
return out << ship.mName << endl;
}
int main() {
vector<Ship*> ships;
ships.push_back(new Ship("some1", 10));
ships.push_back(new Ship("some2", 20));
ships.push_back(new Ship("some3", 30));
ships.push_back(new Ship("some4", 40));
for (Ship *ship : ships)
{
cout << *ship;
delete ship;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCmNsYXNzIFNoaXAKewpwdWJsaWM6CiAgICBTaGlwKCl7fQogICAgU2hpcChzdHJpbmcgbmFtZSwgaW50IGRpc3RhbmNlKQogICAgewogICAgICAgIG1OYW1lID0gbmFtZTsKICAgICAgICBtRGlzdGFuY2UgPSBkaXN0YW5jZTsKICAgIH0KICAgIH5TaGlwKCl7fQogICAgZnJpZW5kIG9zdHJlYW0gJiBvcGVyYXRvciA8PCAob3N0cmVhbSAmb3V0LCBjb25zdCBTaGlwICZzaGlwKTsKcHJpdmF0ZToKICAgIHN0cmluZyBtTmFtZTsKICAgIGludCBtRGlzdGFuY2U7Cn07Cgpvc3RyZWFtICYgb3BlcmF0b3IgPDwgKG9zdHJlYW0gJm91dCwgY29uc3QgU2hpcCAmc2hpcCkgCnsKICAgcmV0dXJuIG91dCA8PCBzaGlwLm1OYW1lIDw8IGVuZGw7Cn0KCgppbnQgbWFpbigpIHsKCXZlY3RvcjxTaGlwKj4gc2hpcHM7CglzaGlwcy5wdXNoX2JhY2sobmV3IFNoaXAoInNvbWUxIiwgMTApKTsKCXNoaXBzLnB1c2hfYmFjayhuZXcgU2hpcCgic29tZTIiLCAyMCkpOwoJc2hpcHMucHVzaF9iYWNrKG5ldyBTaGlwKCJzb21lMyIsIDMwKSk7CglzaGlwcy5wdXNoX2JhY2sobmV3IFNoaXAoInNvbWU0IiwgNDApKTsKCQoJZm9yIChTaGlwICpzaGlwIDogc2hpcHMpCgl7CgkJY291dCA8PCAqc2hpcDsKCQlkZWxldGUgc2hpcDsKCX0KCQoJcmV0dXJuIDA7Cn0=