#include <iostream>
using namespace std;
class B {
protected:
static int x;
int i;
public:
B()
{
x++;
i = 1;
}
~B() { x--; }
static int get_x() { return x; }
int get_i() { return i; }
};
int B::x;
class D : public B {
public:
D() { x++; }
~D() { x--; }
};
int f(B* q)
{
return (q->get_x()) + 1;
}
int main()
{
B* p = new B[10];
cout << f(p);
delete[] p;
p = new D;
cout << f(p);
delete p;
cout << D::get_x();
return 0;
}