#include <iostream>

class A {
public:
    A() : x(-1) {}
    A(int num) : x(num) {}
    int getX() { return x; }
private:
	const int x;
};

class B : public A {
public:
    B() : A() {}
	B(int num) : A(num) {}
};

class C : public B {
public:
	C(int num) : B() {}
};

int main() {
	B b(2);
	C c(5);
	
	//should print 2
	std::cout << "b: " << b.getX() << std::endl;
	
	//should print -1
	std::cout << "c: " << c.getX() << std::endl;
	
	return 0;
}