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";
}
#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