Вам нужно поставить объявление B
перед A
.Компилятор не знает об этом: B::frndA()
.Предварительная декларация не достаточно информации, чтобы определить, какие члены имеет тип.
Я бы порекомендовал поместить объявление вашего класса A
в файл A.h
, а его определение - в файл A.cpp
.Аналогично для типов B
внутри B.h
и B.cpp
В верхней части каждого заголовочного файла ставится #pragma once
(или, если вы предпочитаете включать охранников).Тогда внутри вашего B.h
вы можете просто включить A.h
.