зеркало из https://github.com/mozilla/pjs.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
|
|
};
|