Udostępnij za pośrednictwem


new (nowe gniazdo w vtable) (C++ Component Extensions)

new słowo kluczowe wskazuje, że członek wirtualny otrzyma nowe gniazdo w vtable.

[!UWAGA]

new słowo kluczowe ma wiele zastosowań i znaczeń.Aby uzyskać więcej informacji, zobacz temat ujednoznacznienia new.

Wszystkie środowiska wykonawcze

(Nie ma żadnych uwag dla tej funkcji języka, które mają zastosowanie do wszystkich programów środowiska uruchomienia.)

Środowisko wykonawcze systemu Windows

Nie obsługiwane w Środowisko wykonawcze systemu Windows.

Środowisko uruchomieniowe języka wspólnego

Uwagi

W kompilacji /clr, new wskazuje, że wirtualny element członkowski otrzyma nowe miejsce w vtable; że funkcja nie zastępuje metody klasy podstawowej.

new powoduje dodanie modyfikatora nowego gniazda do IL dla funkcji. Aby uzyskać więcej informacji na temat nowego gniazda, zobacz:

Wymagania

Opcja kompilatora: /clr

Przykłady

Przykład

Poniższy przykład pokazuje wpływ 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
}

Dane wyjściowe

  
  
  
  
  

Zobacz też

Informacje

Specyfikatory zastąpienia (C++ Component Extensions)

Koncepcje

Component Extensions dla platform środowiska uruchomieniowego