#include <iostream>
using namespace std;
class Object {
public:
Object(int i) {
id = i;
count++;
cout<<"Object "<<id<<" is created, we've got "<<count<<" object(s) now!"<<endl;
}
~Object() {
count--;
cout<<"Object "<<id<<" is deleted, we've got "<<count<<" object(s) now!"<<endl;
}
private:
int id;
static int count;
};
int Object::count = 0;
void TestObjects()
{
Object obj1(1);
{
Object obj2(2);
Object obj3(3);
}
Object obj4(4);
}
int main()
{
TestObjects();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgT2JqZWN0IHsKcHVibGljOgogICAgT2JqZWN0KGludCBpKSB7CiAgICAgICAgaWQgPSBpOwogICAgICAgIGNvdW50Kys7CiAgICAgICAgY291dDw8Ik9iamVjdCAiPDxpZDw8IiBpcyBjcmVhdGVkLCB3ZSd2ZSBnb3QgIjw8Y291bnQ8PCIgb2JqZWN0KHMpIG5vdyEiPDxlbmRsOwogICAgfQogICAgfk9iamVjdCgpIHsKICAgICAgICBjb3VudC0tOwogICAgICAgIGNvdXQ8PCJPYmplY3QgIjw8aWQ8PCIgaXMgZGVsZXRlZCwgd2UndmUgZ290ICI8PGNvdW50PDwiIG9iamVjdChzKSBub3chIjw8ZW5kbDsKICAgIH0KcHJpdmF0ZTogCiAgICBpbnQgaWQ7CiAgICBzdGF0aWMgaW50IGNvdW50Owp9OyAgCgppbnQgT2JqZWN0Ojpjb3VudCA9IDA7Cgp2b2lkIFRlc3RPYmplY3RzKCkKewoJT2JqZWN0IG9iajEoMSk7CgoJewoJT2JqZWN0IG9iajIoMik7CglPYmplY3Qgb2JqMygzKTsKCX0gICAgCiAgICAKCU9iamVjdCBvYmo0KDQpOwp9CgppbnQgbWFpbigpCnsKCVRlc3RPYmplY3RzKCk7CglyZXR1cm4gMDsKfQ==
Object 1 is created, we've got 1 object(s) now!
Object 2 is created, we've got 2 object(s) now!
Object 3 is created, we've got 3 object(s) now!
Object 3 is deleted, we've got 2 object(s) now!
Object 2 is deleted, we've got 1 object(s) now!
Object 4 is created, we've got 2 object(s) now!
Object 4 is deleted, we've got 1 object(s) now!
Object 1 is deleted, we've got 0 object(s) now!