Constructors and Destructors - Programming

Q1:

What will be the output of the following program?
#include<iostream.h> 
class AptitudeBase
{
    public:
    int x, y;
    AptitudeBase(int xx = 0, int yy = 5)
    {
        x = ++xx; 
        y = --yy;
    }
    void Display()
    {
        cout<< --y;
    } 
    ~AptitudeBase(){} 
};
class AptitudeDerived : public AptitudeBase
{
    public:
    void Increment()
    {
        y++;
    }
    void Display()
    {
        cout<< --y;
    } 
}; 
int main()
{
    AptitudeDerived objAptitude;
    objAptitude.Increment();
    objAptitude.Display();
    return 0; 
}

A 3

B 4

C 5

D Garbage-value

E The program will report compile time error.