自认为C++还比较了解,在用了一阵Delphi后对虚拟函数产生了疑问......
在Delphi中一个子类要重载父类中的虚函数foo1必须加override关键字。如果没有加,那么下一层子类就不能再重载这个虚函数了。也就是说,后面再定义的foo1(不加override)不再是对其父类foo1的重载,而是一个普通的类成员函数。而C++中只要函数的声明一样,其子类、孙子类中命名为foo1的函数一直是虚函数。C++有没有提供一种方法在某一层时打断这种重载呢? 问题点数:20、回复次数:5Top
1 楼hanyh(烦恼中……)回复于 2002-03-06 18:35:46 得分 10
好象c++里可以一直把虚函数继承下去,不能打断!Top
2 楼reigod(月影清风下,自在逍遥中)回复于 2002-03-07 08:40:09 得分 0
好像是这样~~~~~Top
3 楼prog_st(st)回复于 2002-03-07 08:51:27 得分 0
为何要打断?你不用可以不重载,你不用不妨碍孙子辈的继承类用,这不是很好吗!Top
4 楼whatapig(好一头猪)回复于 2002-03-07 09:26:04 得分 10
声明了虚函数本身就是提供了一个多态的接口。
class A
{
}Top
5 楼reigod(月影清风下,自在逍遥中)回复于 2002-03-08 18:28:21 得分 0
其实我之前也试验过,这个只是想确认一下。Top




