第1条: 了解Objective-C语言的起源//Messaging (objective-C)
object *obj = [object new];
[obj performWith: parameter1 and: parameter2];
// Function calling (C++)
object *obj = new object;
obj-> perform(parameter1, pa rameter2)
关键区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。
如果范例代码中调用的函数是多态的,那么在运行时就要按照’虚方法表‘(virtual table)日来查出到底应该执行哪个函数实现。
而采用消息结构的语言,不论是否多态,总是在运行时才会去查找所要执行的方法。实际上,编译器甚至不关心接收消息的对象是何种类型。
接收消息的对象问题也要在运行时处理,其过程叫做“动态绑定“ (dynamic binding)