When we say that one aspect of a program can be changed completely independently of another aspect, we say those things are orthogonal to one another.
I am looking for pretty much the opposite term. For example, it's a good idea in C++ if the copy-assignment operator has the same calling signature as the copy-constructor, and if they have identical effects (or are close enough not to care). Thus, one might say or write: "it is good class design in C++ to make the copy-constructor and assignment operator _______ to each other."
[EDIT] I'm asking for the computer-language concept related to the following statement: "these two functions have separate identities but similar roles, and therefore should have the same argument types, the same return types (if possible), and same (or highly similar) side-effects or behavior."
This question is not about C++, nor about object-orientation. I am looking for a more general Computer Science or mathematical concept here.
Do you mean two functions like this?
f: T -> R g: T -> R
For All x in T, f(x) == g(x)
And accepting also same side effects (in math there are no side effects of a function)
g and f are just equivalent functions.