#include <iostream>
using namespace std;
class Foo {
int xs[40];
};
class Bar {
Foo *foo;
public:
Bar(Foo *foo) { this->foo = foo; }
};
class Baz {
Foo *foo;
public:
Baz(Foo *foo) { this->foo = foo; }
};
class Gee {
Foo *foo;
public:
Gee() { foo = new Foo(); }
~Gee() { delete foo; }
};
int main() {
Foo *foo = new Foo();
Bar bar(foo);
Baz baz(foo);
Gee gee;
cout << sizeof(foo) << endl;
cout << sizeof(*foo) << endl;
cout << sizeof(bar) << endl;
cout << sizeof(baz) << endl;
cout << sizeof(gee) << endl;
delete foo;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEZvbyB7CglpbnQgeHNbNDBdOwp9OwoKY2xhc3MgQmFyIHsKCUZvbyAqZm9vOwpwdWJsaWM6CglCYXIoRm9vICpmb28pIHsgdGhpcy0+Zm9vID0gZm9vOyB9Cn07CgpjbGFzcyBCYXogewoJRm9vICpmb287CnB1YmxpYzoKCUJheihGb28gKmZvbykgeyB0aGlzLT5mb28gPSBmb287IH0KfTsKCmNsYXNzIEdlZSB7CglGb28gKmZvbzsKcHVibGljOgoJR2VlKCkgeyBmb28gPSBuZXcgRm9vKCk7IH0KCX5HZWUoKSB7IGRlbGV0ZSBmb287IH0KfTsKCmludCBtYWluKCkgewoJRm9vICpmb28gPSBuZXcgRm9vKCk7CglCYXIgYmFyKGZvbyk7CglCYXogYmF6KGZvbyk7CglHZWUgZ2VlOwoJY291dCA8PCBzaXplb2YoZm9vKSA8PCBlbmRsOwoJY291dCA8PCBzaXplb2YoKmZvbykgPDwgZW5kbDsKCWNvdXQgPDwgc2l6ZW9mKGJhcikgPDwgZW5kbDsKCWNvdXQgPDwgc2l6ZW9mKGJheikgPDwgZW5kbDsKCWNvdXQgPDwgc2l6ZW9mKGdlZSkgPDwgZW5kbDsKCWRlbGV0ZSBmb287CglyZXR1cm4gMDsKfQ==