Поскольку вы не можете использовать предварительное объявление, кроме как для предоставления указателей на объекты.
Вместо этого вы можете сделать следующее:
//MyClassTwo.h
//declaration in header
void Show(MyClassOne* myObjectParameter);
и переместить реализацию в файл cpp:
//MyClassTwo.cpp
void MyClassTwo::Show(MyClassOne* myObjectParameter);
{
cout<<"MyClassOne..."<<"\n";
cout<<myObjectParameter->myInteger<<"\n";
cout<<myObjectParameter->myFloat<<"\n";
cout<<"MyClassTwo..."<<"\n";
cout<<myInteger<<"\n";
cout<<myFloat<<"\n";
}
Форвардное объявление позволяет вам использовать указатель, так как все они имеют одинаковый размер.Использование фактического экземпляра будет означать, что вам нужно знать размер объекта, поскольку он будет помещен в стек аргументов метода.Но вы не знаете размер, так как его объявление еще не встречалось.Изменение порядка объявления приведет к ошибке при объявлении друга.
Разделение реализации и объявления - путь.