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:
Requisitos
Opción del compilador: /clr
Ejemplos
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