C++11: final与override
-
C++11中增加了final与override关键字,貌似是从Java语言中借鉴而来,用途也一样。看例子代码:
01.#include <iostream>02.03.usingnamespacestd;04.05./* use final on a class to prevent inheriting; compilation error */06.classA/* final */{07.public:08./* use final on a method to prevent override; compilation error */09.virtualvoidfunc(int)/* final */{ cout <<"A::func()"<< endl; }10.};11.12.classB :publicA {13.public:14./* use override to make the compiler checks that we are indeed overriding an inherited method */15.virtualvoidfunc(int) override { cout <<"B::func()"<< endl; }16.17./* virtual void func(char) override {} compilation error; new method (see signature), does not override existing */18.};19.20.intmain() {21.A t;22.t.func(2);23.24.B u;25.u.func(3);26.}程序输出:
A::func()
B::func()

浙公网安备 33010602011771号