#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
#include <iostream>
using namespace std;
class A {
public:
int x, y, z;
A() {
this->x = 0;
this->y = 0;
this->z = 0;
A::GetA_vector().push_back(this);
}
~A() { }
void init(int x_in, int y_in, int z_in) {
this->x = x_in;
this->y = y_in;
this->z = z_in;
}
int sum() {
return this->x + this->y + this->z;
}
void show_result() {
int result = sum();
cout << "sum = " << result << endl;
}
static vector<A*> & GetA_vector() {
static vector<A*> A_vector;
return A_vector;
}
};
//vector<A*> A::A_vector;
class B {
public:
A A_car, A_cat, A_canada;
B() {
A_car.init(0, 1, 2);
A_cat.init(1, 2, 3);
A_canada.init(8, 7, 6);
}
~B() {}
void show_all_result() {
for (int i = 0; i < A::GetA_vector().size(); i++)
A::GetA_vector()[i]->show_result();
}
};
int main() {
B obj_B;
obj_B.show_all_result();
printf("done\n");
system("pause");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNpbmNsdWRlIDxpb3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBBIHsKcHVibGljOgoKICAgIGludCB4LCB5LCB6OwoKICAgIEEoKSB7CiAgICAgICAgdGhpcy0+eCA9IDA7CiAgICAgICAgdGhpcy0+eSA9IDA7CiAgICAgICAgdGhpcy0+eiA9IDA7CiAgICAgICAgQTo6R2V0QV92ZWN0b3IoKS5wdXNoX2JhY2sodGhpcyk7CiAgICB9CgogICAgfkEoKSB7IH0KCiAgICB2b2lkIGluaXQoaW50IHhfaW4sIGludCB5X2luLCBpbnQgel9pbikgewogICAgICAgIHRoaXMtPnggPSB4X2luOwogICAgICAgIHRoaXMtPnkgPSB5X2luOwogICAgICAgIHRoaXMtPnogPSB6X2luOwogICAgfQoKICAgIGludCBzdW0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMtPnggKyB0aGlzLT55ICsgdGhpcy0+ejsKICAgIH0KCiAgICB2b2lkIHNob3dfcmVzdWx0KCkgewogICAgICAgIGludCByZXN1bHQgPSBzdW0oKTsKICAgICAgICBjb3V0IDw8ICJzdW0gPSAiIDw8IHJlc3VsdCA8PCBlbmRsOwogICAgfQoKICAgIHN0YXRpYyB2ZWN0b3I8QSo+ICYgR2V0QV92ZWN0b3IoKSB7CiAgICAgICAgc3RhdGljIHZlY3RvcjxBKj4gQV92ZWN0b3I7CiAgICAgICAgcmV0dXJuIEFfdmVjdG9yOwogICAgfQoKCn07Ci8vdmVjdG9yPEEqPiBBOjpBX3ZlY3RvcjsKCgpjbGFzcyBCIHsKcHVibGljOgogICAgQSBBX2NhciwgQV9jYXQsIEFfY2FuYWRhOwoKICAgIEIoKSB7CiAgICAgICAgQV9jYXIuaW5pdCgwLCAxLCAyKTsKICAgICAgICBBX2NhdC5pbml0KDEsIDIsIDMpOwogICAgICAgIEFfY2FuYWRhLmluaXQoOCwgNywgNik7CiAgICB9CgogICAgfkIoKSB7fQoKICAgIHZvaWQgc2hvd19hbGxfcmVzdWx0KCkgewogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQTo6R2V0QV92ZWN0b3IoKS5zaXplKCk7IGkrKykKICAgICAgICAgICAgQTo6R2V0QV92ZWN0b3IoKVtpXS0+c2hvd19yZXN1bHQoKTsKICAgIH0KfTsKCgppbnQgbWFpbigpIHsKCiAgICBCIG9ial9COwoKICAgIG9ial9CLnNob3dfYWxsX3Jlc3VsdCgpOwogICAgcHJpbnRmKCJkb25lXG4iKTsKICAgIHN5c3RlbSgicGF1c2UiKTsKICAgIHJldHVybiAwOwp9Cgo=