[C++11]final关键字的使用
生活随笔
收集整理的這篇文章主要介紹了
[C++11]final关键字的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++中增加了final關鍵字來限制某個類不能被繼承,或者或個虛函數不能被重寫,和java的final關鍵字的功能是類似的。如果使用final修飾函數,只能修飾虛函數,并且要把final關鍵字放到類或者函數的后面。
1.如果使用final修飾函數,只能修飾虛函數,這樣就能阻止子類重寫父類的這個函數了。
代碼如下:
#include <iostream> using namespace std;class Base { public:virtual void test(){cout << "Base class..." << endl;} };class Child :public Base { public:void test() final{cout << "Child class..." << endl;} };class GrandChild :public Child { public:void test()/*error 因為Child的test()被final修飾,所以它的子類已經不能重寫這個函數了。*/{cout << "GrandChild class..." << endl;} };2.使用final關鍵字修飾過的類是不允許被繼承的,也就是說這個類不能有派生類。
代碼如下:
#include <iostream> using namespace std;class Base { public:virtual void test(){cout << "Base class..." << endl;} };class Child final:public Base { public:void test() {cout << "Child class..." << endl;} };class GrandChild :public Child//error 不能將final類型的類作基類 { public:void test(){cout << "GrandChild class..." << endl;} };總結
以上是生活随笔為你收集整理的[C++11]final关键字的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [C++11]override关键字的使
- 下一篇: 鳕鱼的功效与作用、禁忌和食用方法