Name Encoding

Here is another problem caused by inheritance. Many linkers want to have unique names. But in object-oriented languages different classes are allowed to have functions with the same name. Some languages, such as C++, even permit multiple functions with the same name within a single class.

The solution to this problem is that internally functions are known by a different internal name. Typically this name encodes both the class and the function name, sometimes even the argument types.

[audio] [real] Text to accompany slide9, in Chapter 21 of An Introduction to Object-Oriented Programming