class X
{
X x;
};
потому что на момент компиляции размер X не определен и компилятор не знает сколько памяти выделить под x.
А вот так можно:
class X
{
static X x;
};
Правильно ли я понимаю, что это допустимо потому, что объявление статического мембера не является его определением и память поэтому не выделяется под него, до тех пор, пока не встретится его определение за пределами класса?
Спасибо.