Incomplete types, such as unbounded array types, can be initialized as follows:
char HomeRow[] = { 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l' };
The compiler computes the size of the array from the number of initializers provided.
Incomplete types, such as pointers to class types that are declared but not defined, are declared as follows:
class DefinedElsewhere; // Class definition elsewhere.
class DefinedHere
{
...
friend class DefinedElsewhere;
};