比方說,我們有純虛擬方法覆蓋(規則)虛擬方法的效果如何?
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