new(vtable의 새 슬롯)(C++/CLI 및 C++/CX)new (new slot in vtable) (C++/CLI and C++/CX)

new 키워드는 가상 멤버가 vtable에서 새 슬롯을 가져오도록 지정 합니다.The new keyword indicates that a virtual member will get a new slot in the vtable.

모든 런타임All Runtimes

(이 언어 기능에는 모든 런타임에 적용되는 설명이 없습니다.)(There are no remarks for this language feature that apply to all runtimes.)

Windows 런타임Windows Runtime

Windows 런타임에서는 지원되지 않습니다.Not supported in Windows Runtime.

공용 언어 런타임Common Language Runtime

설명Remarks

컴파일에서는 /clr new 가상 멤버가 vtable에서 새 슬롯을 가져오기 때문에 함수가 기본 클래스 메서드를 재정의 하지 않음을 나타냅니다.In a /clr compilation, new indicates that a virtual member will get a new slot in the vtable; that the function does not override a base class method.

new 는 함수에 대 한 IL에 newslot 한정자를 추가 합니다.new causes the newslot modifier to be added to the IL for the function. newslot에 대한 자세한 내용은 다음을 참조하세요.For more information about newslot, see:

요구 사항Requirements

컴파일러 옵션: /clrCompiler option: /clr

예제Examples

다음 샘플에서는의 효과를 보여 줍니다 new .The following sample shows the effect of new.

// newslot.cpp
// compile with: /clr
ref class C {
public:
   virtual void f() {
      System::Console::WriteLine("C::f() called");
   }

   virtual void g() {
      System::Console::WriteLine("C::g() called");
   }
};

ref class D : public C {
public:
   virtual void f() new {
      System::Console::WriteLine("D::f() called");
   }

   virtual void g() override {
      System::Console::WriteLine("D::g() called");
   }
};

ref class E : public D {
public:
   virtual void f() override {
      System::Console::WriteLine("E::f() called");
   }
};

int main() {
   D^ d = gcnew D;
   C^ c = gcnew D;

   c->f();   // calls C::f
   d->f();   // calls D::f

   c->g();   // calls D::g
   d->g();   // calls D::g

   D ^ e = gcnew E;
   e->f();   // calls E::f
}
C::f() called

D::f() called

D::g() called

D::g() called

E::f() called

참고 항목See also

.NET 및 UWP 용 구성 요소 확장Component Extensions for .NET and UWP
Override 지정자Override Specifiers