override 學過Java的小夥伴們應該不陌生,這個關鍵字就類似Java中的註解@override
確保在子類中聲明的重寫函數與基類的虛函數有相同的簽名,同時也明確表明將會重寫基類的虛函數,這樣就可以保證重寫的虛函數的正確性,也提高了代碼的可讀性;
override和final一樣這個關鍵字要寫到方法的後面。
#include <iostream>
using namespace std;
class Base {
public:
virtual void test() {
cout << "dddd" << endl;
}
};
class Chile :public Base {
public:
void test() {
cout << "Chile class...." << endl;
}
};
class GrandChile : public Chile {
public:
//void test13() override{ //報錯:使用override的成員函數沒有可重寫的內容。
//}
void test() override{
cout << "GrandChile class...." << endl;
}
};
int main() {
system("pause");
return 0;
}
就如上面的代碼,如果加了test13()加了override就會報錯,提示開發者這裏不是重寫,如果不加override,這裏就會定義一個新的名為test13()的函數,和開發者的意願不同。
override只是為了提高了程序的正確性,降低了出錯的概率。