通常,从一个基础类继承来得派生类包含了基类的公有和私有数据成员,私有成员在派生类构造的对象中存在但是不可用,如果重写了基类的同名函数,那么当用基类的指针调用派生类的成员时候,将会调用基类的方法,这样就实现不了多态这样的技术,c++是通过virtual机制来实现的,这个机制是在对象构造的时候多出一张vtbl,存放这些虚函数的地址,当发现指针指向的是派生类的成员时候,自动转向派生类的函数调用。
    这样就可以理解为什么要用虚析构函数技术了,因为要使用这个技术实现一个指针多态调用析构函数。
 而虚继承就是共享继承,可以从多个分支的继承中把从基类而来得只保存一份拷贝。
posted on 2005-02-07 10:47  不再专注于.net技术  阅读(473)  评论(0编辑  收藏  举报