c++多态的底层实现
投钱带路 2008-10-07 09:12:11 最近看《Inside The c++ Object Model》遇到的问题.
如果normalize()是一个virtual member function,那么以下的调用:
ptr->normalize();
将会被内部转化为:
(* ptr->vptr[1])(ptr);
1是virtual table slot的索引值,关联到normalize()函数.
第二个ptr表示this指针.
1还能理解,说的是在virtual function normalize在vtbl中的索引,ptr表示this指针不能理解,
谁能给解释一下?