不要对数组使用多态

来看一个蛋疼的题目: 请问以下代码的运行结果是?

给出四个选项:

A. father:3
B. son:3
C. father:4
D. son:2

当你明白这题的答案为什么是D之后,你就明白了为什么不要对数组使用多态了。

提示:

sizeof(son)==12,sizeof(father)==8

(不懂原因的,自己百度下看看啥是vptr)

sizeof(son)*2==sizeof(father)*3

懂了这题有多蛋疼,你就知道为什么不要支数组使用多态了。

如果依然不懂,请翻阅《Effective Cpp》。


转载请指明出处:http://blog.acmol.com

This Page