Когда мы говорим, что один аспект программы может быть изменен полностью независимо от другого аспекта, мы говорим, что эти вещи ортогональны друг другу.
Я ищу в значительной степени противоположный термин. Например, в C ++ будет хорошей идеей, если оператор копирования-присвоения имеет ту же сигнатуру вызова, что и конструктор копирования, и если они имеют идентичные эффекты (или достаточно близки, чтобы их не волновать). Таким образом, можно сказать или написать: «это хороший дизайн классов в C ++, чтобы сделать конструктор копирования и оператор присваивания _______ друг другу».
[EDIT] Я спрашиваю о концепции компьютерного языка, связанной со следующим утверждением: «эти две функции имеют разные идентификаторы, но сходные роли, и поэтому должны иметь одинаковые типы аргументов, одинаковые возвращаемые типы (если это возможно) и те же (или очень похожие) побочные эффекты или поведение. "
Этот вопрос не о C ++ и не об объектной ориентации.
Я ищу более общую компьютерную науку или математическую концепцию здесь.