How to: Declare Override Specifiers in Native Compilations (C++/CLI)
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at How to: Declare Override Specifiers (C++/CLI).
sealed](../Topic/sealed%20%20(C++%20Component%20Extensions).md), abstract, and override are available in compilations that do not use /ZW or /clr.
Note
The ISO C++11 Standard language has the override identifier and the final identifier, and both are supported in Visual Studio Use final
instead of sealed
in code that is meant to be compiled as native-only.
Example
Description
The following example shows that sealed
is valid in native compilations.
Code
// sealed_native_keyword.cpp
#include <stdio.h>
__interface I1 {
virtual void f();
virtual void g();
};
class X : public I1 {
public:
virtual void g() sealed {}
};
class Y : public X {
public:
// the following override generates a compiler error
virtual void g() {} // C3248 X::g is sealed!
};
Example
Description
The next example shows that override
is valid in native compilations.
Code
// override_native_keyword.cpp
#include <stdio.h>
__interface I1 {
virtual void f();
};
class X : public I1 {
public:
virtual void f() override {} // OK
virtual void g() override {} // C3668 I1::g does not exist
};
Example
Description
This example shows that abstract
is valid in native compilations.
Code
// abstract_native_keyword.cpp
class X abstract {};
int main() {
X * MyX = new X; // C3622 cannot instantiate abstract class
}