这个问题疑惑好久了,去年找工作时,面试网易游戏就被问到这个问题,没有搞清楚,今天看STL源码分析时,突然想到了,就上网查了,算是把这个问题搞明白了
当前的编译器都期望在处理类的定义的时候就能确定这个类的虚函数表的大小,如果允许有类的虚成员模板函数,那么就必须要求编译器提前知道程序中所有对该类的该虚成员模板函数的调用,而这是不可行的
为什么作者这样说呢?从上面的演示知道,对于一个模板函数,不同的模板参数会产生出不同的函数。这样的话,如果要知道类内包含多少个虚函数,就只能去代码中寻找。这就不单单是多文件的问题,还有RTTI的问题了。
主要是参考了http://blog.csdn.net/jcwkyl/article/details/3771059文章,原来是还是吉大的师兄呢,呵呵