&gt; it starts as slots for function pointers in structs in C<p>It was built around lambdas in Smalltalk long before that.<p>Simula (about 4 years older) had a more typical class-based OO with vtables and a proper subtyping already. Long before any C.