зеркало из https://github.com/mozilla/gecko-dev.git
25 строки
630 B
C++
25 строки
630 B
C++
|
#include "nscore.h"
|
||
|
|
||
|
struct Base {
|
||
|
NS_MUST_OVERRIDE virtual void f(); // normal case
|
||
|
NS_MUST_OVERRIDE void g(); // virtual not required
|
||
|
NS_MUST_OVERRIDE static void h(); // can even be static
|
||
|
};
|
||
|
|
||
|
void Base::f() {} // can be defined, or not, don't care
|
||
|
|
||
|
struct Derived1 : Base { // propagates override annotation
|
||
|
NS_MUST_OVERRIDE virtual void f();
|
||
|
NS_MUST_OVERRIDE void g();
|
||
|
NS_MUST_OVERRIDE static void h();
|
||
|
};
|
||
|
|
||
|
struct Derived2 : Derived1 { // doesn't propagate override annotation
|
||
|
virtual void f();
|
||
|
void g();
|
||
|
static void h();
|
||
|
};
|
||
|
|
||
|
struct Derived3 : Derived2 { // doesn't have to override anything
|
||
|
};
|