Проблема в том, что класс A зависит от класса B и наоборот. Компилятор будет жаловаться на неизвестный тип. Обычное решение — объявить классы заранее. Но как объявить шаблоны классов?
Я потратил некоторое время, чтобы найти решение, поэтому подумал, что смогу облегчить чужую жизнь, разместив здесь «шаблон».
// Header A.h
template<class z, class w = float>
class B;
template<class x, class y = double>
class A
{
B mb;
}// Header B.h
template<class x, class y = double>
class A;
template<class z, class w = float>
class B
{
A mA;
}
Кроме того, вы можете изменить необязательный параметр в объявлении шаблона.
Других решений пока нет …