// Two simple value type structures. one embedded in the other.
I've stepped through the debugger and I see the embedded
structure being set to 2, and dog.
import std.stdio;
struct NestedBottom
{
int i;
char[3] fixedArray;
// this(){} no-argument ctor can only be defined by the
compiler
this(int i, char[3] fixedArray)
{
this.i = i;
this.fixedArray = fixedArray;
}
void print()
{
writeln("This is level ", i);
writeln("animal = ", fixedArray);
}
}
struct NestedTop
{
int i;
char[3] fixedArray;
NestedBottom bottom;
// this(){} no-argument ctor can only be defined by the
compiler
this(int i, char[3] fixedArray)
{
this.i = i;
this.fixedArray = fixedArray;
auto bottom = NestedBottom(2, ['d','o','g']);
}
void print()
{
writeln("This is level ", i);
writeln("animal = ", fixedArray);
bottom.print();
// added this in desperation. Still nothing.
writeln("This is level ", bottom.i);
writeln("animal = ", bottom.fixedArray);
}
}
void main()
{
auto top = NestedTop(1, ['c', 'a', 't']);
top.print();
}
Output is the following:
This is level 1
animal = cat
This is level 0
animal =
This is level 0
animal =