15.5.4 安装vpointer
因为VPTR决定了对象的虚函数的行为,所以我们可以看到VPTR总是指向相应的VTABLE是多么重要。在VPTR适当初始化之前绝对不能调用虚函数。当然,可以保证初始化的地点是在构造函数中,但是在Instrument例子中没有一个是有构造函数的。
这样,默认构造函数的创建是很关键的。在Instrument例子中,编译器创建了一个默认构造函数,它只做初始化VPTR的工作。在使用任何Instrument对象之前,对于Instrument对象自动调用这个构造函数。所以,可以安全地调用虚函数。
在下一节中我们将讨论在构造函数内部自动初始化VPTR的含义。