In computer science terminology, a function or operator that does different things depending on context. For example, (in a purely imaginary C-style language)

// simple addition
int a = b + c;

// the addition '+' operator is overloaded to allow
// string concatenation
string s = "Hello, " + "world!";

While languages with this feature allow programmers great flexibility, overloaded operations can be a source of Great Evil when wielded incorrectly, and easily provides enough rope to shoot yourself in the foot.