我有下面的代碼有問題:C++:在亞 - 亞覆蓋keywoard
#include <iostream>
using namespace std;
class C1 {
public:
void f() { cout << "something" <<endl; }
};
class C2 : public C1 {
// void f() { cout << "something more " << endl;} // no f implementation here
};
class C3 : public C2 {
public:
void f() { cout << "something else" <<endl; }
};
int main() {
C1 c1;
C3 c3;
c1.f(); // outputs "something"
c3.f(); // outputs "something else"
return 0;
}
這工作得很好。但如果我標記C3::f()
與override
它不會編譯(example on ideone)。有誰知道爲什麼發生這種情況?顯然我在這裏成功覆蓋函數f!我誤解了關鍵字override
的想法嗎?
您只能覆蓋虛擬功能。這是你打算使用,但只是簡單地忘記。 –