【发布时间】:2015-05-08 14:54:48
【问题描述】:
C++ 虚拟定义是递归的吗?考虑
class Foo
{
public:
virtual void a()=0;
};
class Bar:public Foo
{
public:
void a()
{
//...
}
};
如果我现在继承Bar并再次重载a,那a也是多态的吗?
递归意味着
给定一个类
A,它有一个虚拟成员a,以及n的一个虚拟成员:A的子类,那么a也是n+1的一个虚拟成员: th 子类,适用于所有n。
也就是说,虚函数遵循Peanos归纳公理,并且在一级之后不会终止。
【问题讨论】:
-
我想,你已经展示了重新定义的例子,它没有重载
-
不是“重载”,而是“覆盖”。
-
是的,...覆盖。在任何情况下都需要
virtual关键字 -
加一个,比如“Peanos 归纳公理”。这对星期五来说很豪华。
标签: c++ polymorphism virtual