方法: ネイティブ コンパイルでオーバーライド指定子を宣言 (C +/cli CLI)How to: Declare Override Specifiers in Native Compilations (C++/CLI)

封印された抽象、およびオーバーライドは使用しないでコンパイルで使用可能な /ZWまたは/clrします。sealed, abstract, and override are available in compilations that do not use /ZW or /clr.

注意

ISO c 11 標準言語が、オーバーライド識別子と最終的な識別子、およびその両方が Visual Studio の使用でサポートされているfinalの代わりにsealedするものではコードで(ネイティブのみ) としてコンパイルします。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

例を次に示しますsealedはネイティブ コンパイルで有効です。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

次の例を示しますoverrideはネイティブ コンパイルで有効です。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

この例ではabstractはネイティブ コンパイルで有効です。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
}

関連項目See also

オーバーライド指定子Override Specifiers