比方说,我们有纯虚拟方法覆盖(规则)虚拟方法的效果如何?
class A {
public:
virtual int foo() { cout << "foo!"; }
}
class B : public A {
public:
virtual int foo() =0;
}
class C : public B {
public:
virtual int foo() { cout << "moo!"; }
}
这真的是覆盖?我想这实际上是超载。 制作类似这样的设计的意义是什么?
我们得到了一个基类A.然后,我们这是从具体类派生的一个抽象的派生类B,然后通过C的实现B的
什么是我们在这里做是否使任何意义?
是的,它看起来“可疑”,但我不会说它本身就是一个缺陷,也许在现实世界的代码中它是有意义的。顺便说一句,+1,因为你是唯一一个回答超载/压倒性部分:) – 2009-01-27 13:12:37