Я собираюсь догадаться, что вашим производным классам "Фигуры" (King, Queen, Rook и т. Д.) Нужен доступ к частным полевым данным, чтобы перемещаться?
В идеале, я думаю, чтокласс Figure должен предоставлять какой-то открытый метод, который использует некоторую структуру данных для описания своих характеристик перемещения, и позволяет Field использовать этот открытый метод для манипулирования своими собственными внутренними частными данными.Каждый производный класс должен предоставлять свою собственную реализацию, чтобы они могли возвращать правильную структуру данных, описывающую их перемещение.
В качестве альтернативы, если вы должны предоставить доступ друзьям, я думаю, что вы, вероятно, можете попробовать использовать friend class Figure
, а затем выставитьprotected
методы класса Figure, используемые вашими производными классами, которые позволяют им манипулировать этими данными.