mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 21:55:31 +00:00
a7a24a1627
--HG-- extra : rebase_source : 4f3034c93cc76c7504d1cfb21953c495c35d068f
25 lines
630 B
C++
25 lines
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
|
|
};
|