第1个回答 2010-11-07
虚函数必须要在基类用virtual修饰才能为虚函数,派生类若重定义该函数,则无论是否有virtual关键字都是虚函数。你要判断派生类中没有用virtual定义的函数是否为虚函数,则可以:在该函数标志特定的输出,如cout<<"Virtual Function!";然后定义一个基类的指针bP,指向新new的派生类对象,然后用bP调用所需判断的函数,看是否有输出特定的标志Virtual Function!,如果正确输出则说明是虚函数,其他情况则表明该函数不是虚函数。
第2个回答 2010-11-07
比如b是一个派生类,f是b里面一个函数。
先去b的基类里找,如果发现f原来在某个基类中有的,看基类中f是不是虚函数,如果是,那不管b中f有没有virtual都是虚函数。
如果在基类中没有发现f的原型,则就看b中f自己有没有virtual了,有就是,没有就不是。
第3个回答 2010-11-07
如果是虚函数的话,在派生类中重新定义其函数体时,不会导致同名覆盖.当用基类指针指向派生类对象并调用虚函数时,执行的是在派生类中重新定义的虚函数的函数体.
第4个回答 2010-11-07
想用虚函数是:基类、父类都要定义成virtual类型的