Интерфейс с методом, который действует на несколько компонентов класса [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
Интерфейс с методом, который действует на несколько компонентов класса [закрыто]

Сообщение Anonymous »

Я пытаюсь создать интерфейс с методом, который отмечает определенное отношение между двумя компонентами класса. Я пытаюсь добиться того, чтобы два класса, компоненты которых имеют одинаковое отношение, считались «совместимыми» и могли использоваться взаимозаменяемо в зависимости от отношения.
Это может звучать слишком уж абстрактно, так вот над чем я конкретно работаю. По сути, я пытаюсь использовать объектно-ориентированное программирование для реализации/моделирования математических структур, таких как группы, поля, действительные числа, векторные пространства и т. д. Дело в том, что большинство этих структур абстрактны, то есть на самом деле существует много разных полей. , векторные пространства и т. д., если они соответствуют определению объекта. Например, группы — это просто наборы с операцией умножения, удовлетворяющие нескольким условиям. Таким образом, существует много места для пользовательских структур.
Я не пытаюсь автоматически решить, удовлетворяет ли структура определенному условию, потому что это невозможно сделать, но я хочу создать некоторые интерфейсы, которые отмечают доступность некоторых функциональных возможностей, то есть методов структуры, и если пользователь решает включить интерфейс в класс, считается, что структура удовлетворяет условию (хотя на самом деле это может быть не так). , поэтому пользователь должен это проверить).
Моя попытка состоит в том, чтобы присвоить каждой структуре класс и использовать интерфейсы для добавления операций. Аналогично я создаю интерфейсы для обозначения определенных условий. Но с условиями, включающими несколько компонентов, например. дистрибутивность умножения над сложением в полях, я не могу создавать интерфейсы на две операции. Отсюда возникает проблема: как создавать интерфейсы, определяющие отношения между компонентами класса? Или что мне делать альтернативно? Мне удобнее работать с C/C++, поэтому буду признателен, если ответ будет написан на нем.
P.S. Я сознательно избегаю наследования, поскольку классы, очевидно, связаны слишком тесно.

Подробнее здесь: https://stackoverflow.com/questions/786 ... of-a-class

Вернуться в «C++»