так я и использую forward declaration и все компилируется. Мне хотелось бы обойтись без этого.
Или, может я просто не понимаю, использование подхода в написании программа, где нужна forward declaration, это нормально и естесвенно? Или все же нужно строить структуру программы так, чтобы обходится без forward declaration?