Functions - Programming

Q1:

What is correct about the following program?
#include<iostream.h> 
class Base
{
    int x, y, z; 
    public: 
    Base()
    {
        x = y = z = 0;
    }
    Base(int xx, int yy = 'A', int zz = 'B')
    {
        x = xx;
        y = x + yy;
        z = x + y;
    }
    void Display(void)
    {
        cout<< x << ' ' << y << ' ' << z << endl;
    }
};
class Derived : public Base
{
    int x, y; 
    public:
    Derived(int xx = 65, int yy = 66) : Base(xx, yy)
    {
        y = xx; 
        x = yy;
    }
    void Display(void)
    {
        cout<< x << ' ' << y << ' ';
        Display(); 
    }
};
int main()
{
    Derived objD;
    objD.Display();
    return 0; 
}

A The program will report compilation error.

B The program will run successfully giving the output 66 65.

C The program will run successfully giving the output 65 66.

D The program will run successfully giving the output 66 65 65 131 196.

E The program will produce the output 66 65 infinite number of times (or till stack memory overflow).

ANS:C - The program will run successfully giving the output 65 66.

No answer description is available. Let's discuss.