注册 登录
编程论坛 C++教室

关于继承和虚函数

russilong 发布于 2005-09-01 15:38, 1602 次点击
为实现编译过程中得晚捆绑,编译器为每个含虚函数的类创建一个VTABLE的表,存放虚函数的地址及一指向此地址的指针。
当然,对于基类和派生类的表和指针是不同的,是不是存在两个不同的表和指针?
当实现继承和在派生类中重新定义虚函数并调用其工作时,表和指针的信息是如何变化来实现正常编译的呢?
12 回复
#2
kai2005-09-01 20:00
你提了问题是要回答你的,但是这样的话题真的展开来讲就不是一两句话的问题了,而且还要给你举例子,还要给你画个表,所以很麻烦的。
我一再推荐的那本书对你提的问题就做了很详细的解释。
网上也有这方面的相关文章,所以我就不重复来写了。
下面是我找到的一篇相关的文章,希望对你有所帮助。
http://www.
#3
russilong2005-09-04 11:12
斑竹推荐的文章看过了,谢过了。相关的书看了thinking in C++,还需要进一步消化。
#4
kai2005-09-04 14:39
咳,一本好书无人问津,可惜了,可惜了。
#5
russilong2005-09-04 15:20
呵呵,我这里有这本书的电子版,看起来有些累,不过斑竹既然这么推荐,我一定会好好看看的。
#6
kai2005-09-04 16:38
你知道我指的哪本书?
#7
russilong2005-09-04 17:32
C++ primer plus?我的是中文的电子文档
#8
kai2005-09-04 19:09
奥原来如此,对,我一直推荐的就是这本书。这本书最适合自学了。
我C++的书一本没买,唯独买的就是这本书。这样经典的书是一定要买下来的。不过我不知道,中文版翻译的质量如何。听说只有750页,足足少掉了快500页呢。难道翻译有这样大的压缩量吗?
这本书在网上是找不到下载或E版的。
不过出钱买下这本书,的的确确一个字,值!
#9
russilong2005-09-04 20:31
http://www.infoxa.com/asp/book/cx.asp?page=3&gjz=cppp&px=rq&gjz_smjs=js 这里有中文的电子版,不过是扫描仪上的,有兴趣可以看看

[此贴子已经被作者于2005-9-4 20:37:03编辑过]

#10
kai2005-09-04 20:39
还是谢谢,不过我已经有了英文原版的了。
#11
russilong2005-09-04 20:56
呵呵,其中还有好多的软件方面的书。
在下在C++方面只是刚刚入门,本科时学了些C,只是粗学,现在在搞数值计算(当然不是数学系),用到C++多些,以后还请多多指教。
#12
zorro2zzz2005-09-11 22:14
谢谢两位了……
1