【发布时间】:2011-09-07 07:36:21
【问题描述】:
如果我这样做:
Dog dog; //class with virtual methods
Cat cat; //class from same base as Dog
dog.eat(); //call virtual method
cat.eat(); //call virtual method
那么eat()s 将是正常的方法调用并且不需要v-table - 对吗? 我可以假设它的运行方式与非虚拟方法相同?
(是的,我知道编译器如何处理虚函数不在标准中——我想知道大多数编译器是做什么的)
【问题讨论】:
-
如果对您很重要,请检查编译器的汇编器输出。
-
birryree:我是这么想的,但我想确认一下。 Neil Butterworth:很好,虽然我希望我能在这里得到答案......
标签: c++ inheritance methods virtual