Examveda

What will be the output of the following C++ code?
#include <iostream>
using namespace std;
struct X;
struct Y 
{
    void f(X*);
};
struct X 
{
    private:
    int i;
    public:
    void initialize(); 
    friend void g(X* , int);
    friend void Y :: f(X*);
    friend struct Z;
    friend void h();
};
void X :: initialize() 
{
    i = 0;
}
void g(X* x, int i) 
{
    x -> i = i;
}
void Y :: f(X * x) 
{
    x -> i = 47;
    cout << x->i;
}
struct Z 
{
    private:
    int j;
    public:
    void initialize();
    void g(X* x);
};
void Z::initialize() 
{
    j = 99;
}
void Z::g(X* x) 
{
    x -> i += j;
}
void h() 
{
    X x;
    x.i = 100;
    cout << x.i;
}
int main() 
{
    X x;
    Z z;
    z.g(&x);
    cout << "Data accessed";
}

A. 99

B. 47

C. Data accessed

D. 67

Answer: Option C


Join The Discussion

Related Questions on C plus plus miscellaneous

What is the difference between '++i' and 'i++' in C++?

A. None of the above

B. They both have the same effect

C. '++i' increments the value of 'i' before returning it, while 'i++' increments the value of 'i' after returning it

D. '++i' increments the value of 'i' after returning it, while 'i++' increments the value of 'i' before returning it