Я преобразовал платформу научного моделирования с Java на C++. Я постарался максимально сохранить дизайн таким же, как в предыдущей реализации. В java из-за позднего связывания циклические зависимости разрешаются во время выполнения. Однако циклические зависимости создали в C++ адский беспорядок.
Существует ли автоматизированный инструмент для анализа и составления списка включений и ссылок в циркуляре? (Visual Studio 2010 выдает только огромный список бессмысленных ошибок).
Я пытался использовать прямые ссылки везде, где это было возможно. Однако в некоторых случаях оба класса нуждаются в функциональности другого класса (например, вызов методов, который делает невозможным использование прямой ссылки). Эти потребности существуют в Logic, и если я радикально изменю дизайн, они больше не будут представлять взаимодействия в реальном мире.
Как мы могли бы реализовать два класса, которым нужны методы и статус друг друга? Можно ли реализовать их на C++?
Примеры:
На диаграмме ниже показано подмножество классов, а также некоторые их методы и свойства: