面向对象的几个问题。
1.如果是虚函数override的话,两个函数的原型必须完全的一致,包括函数名字,参数数目和类型,还有返回类型以及是否是const。
如果两个函数,除了返回类型之外都完全一致的话,那么会出想编译错误。如果参数或者const不一致,那么就是两个函数。父类指针查找的时候是不会找到子类的。
2.如果不是虚函数,当子类的某个函数和父类的函数名字一样时,那么父类的这个函数就会被屏蔽。
只需要区分这两种情况就可以了。首先看是否是虚函数,然后看原型。
还有,虚函数是依靠虚表实现的。
时间: 2024-10-31 09:06:04