class Y
{
public:
int i;
float f;
char a[20];
Y(void);
}
Y::Y(void)
{
i = 0;
f = 3.14;
a[0] = '\0';
}
We'll also include a block of code that has the definition of a variable
of type Y:
{
Y myY;
cout << myY.i << " " myY.f << " " << myY.a << endl;
}
There is no explicit call to the constructor Y::Y. In C++, the
definition of a variable (of a class) automatically calls the
constructor member function after storage is allocated. In other words,
you can imagine that there is a myY.Y() invocation immediately
after the definition of myY.
Consequently, when the data members are printed, we'll get 0, 3.14 and an empty string.