new (nueva ranura en vtable) (Extensiones de componentes de C++)

La palabra clave de new indica que un miembro virtual obtendrá una nueva ranura en vtable.

Todos los runtimes

(No hay notas para esta característica de lenguaje que se aplican a todos los runtimes.)

Windows en tiempo de ejecución

No se admite en Windows en tiempo de ejecución.

Common Language Runtime

Comentarios

En una compilación de /clr , new indica que un miembro virtual obtendrá una nueva ranura en vtable; que la función no reemplaza un método de clase base.

new produce el modificador de newslot que se agregará al lenguaje intermedio para la función.Para obtener más información sobre newslot, vea:

86hbff6c.collapse_all(es-es,VS.110).gifRequisitos

Opción del compilador: /clr

86hbff6c.collapse_all(es-es,VS.110).gifEjemplos

Ejemplo

El ejemplo siguiente muestra el efecto de 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
}

Output

  
  
  
  
  

Vea también

Referencia

Especificadores de invalidación (Extensiones de componentes de C++)

Conceptos

Extensiones de componentes para plataformas de tiempo de ejecución