Resultados de la búsqueda a petición "virtual-functions"

3 la respuesta

Función virtual pública derivada privada en C ++

Estaba tratando de averiguar qué sucede cuando una clase derivada declara que una función virtual es privada. El siguiente es el programa que escribí.

1 la respuesta

Patrón de clonación para std :: shared_ptr en C ++

¿Por qué necesita (para hacerlo compilar) el intermedioCloneImplementation ystd::static_pointer_cast (mira la sección3a continuación) para usar el patrón Clone parastd::shared_ptr en lugar de algo más cercano (ver Sección2a continuación) para el ...

5 la respuesta

¿Por qué tiene sentido dar definición para una función virtual pura?

Scott dijo en Effective C ++, 3rd Edition, pág. 43 que para hacer una clase abstracta, solo tenemos que darle un destructor virtual puro:

7 la respuesta

¿Por qué las funciones virtuales deben pasarse con un puntero y no por valor (del objeto)?

Creo que entiendo el concepto de métodos virtuales y vtables, pero no entiendo por qué hay una diferencia entre pasar el objeto como puntero (o referencia) y pasarlo por valor (¿qué tipo de desecho de la tabla o algo así? ) ¿Por qué algo así ...

3 la respuesta

C ++: ¿Puntero a la versión monomórfica de la función miembro virtual?

En C ++, es posible obtener un puntero a una función miembro (no estática) de una clase, y luego invocarlo en un objeto. Si la función era virtual, la llamada se despacha dinámicamente según el tipo dinámico del objeto. También es posible (sin ...

3 la respuesta

Cuáles son las reglas para la búsqueda de funciones virtuales?

#include <iostream> class base { public: virtual void print (int a) { std::cout << "a: " << a << " base\n"; } virtual void print (int a, int b) { std::cout << "base\n"; } }; class derived : public base { public: virtual void print (double d) { ...

4 la respuesta

Covarianza de tipo de retorno con punteros inteligentes

En C ++ podemos hacer esto: struct Base { virtual Base* Clone() const { ... } virtual ~Base(){} }; struct Derived : Base { virtual Derived* Clone() const {...} //overrides Base::Clone }; Sin embargo, lo siguiente no hará el mismo ...

4 la respuesta

Costo de una función virtual en un circuito cerrado

Estoy en una situación en la que tengo objetos de juego que tienen una función virtual Actualizar (). Hay muchos objetos de juego (actualmente un poco más de 7000) y las llamadas de bucle se actualizan para todos ellos (entre otras cosas). Mi ...

4 la respuesta

Mesa virtual / mesa de despacho

De lo que sé de CPP, cada clase tiene su propia vtable. Sin embargoest [http://en.wikipedia.org/wiki/Virtual_method_table]l enlace @ wikipedia menciona: La tabla de despacho de un objeto contendrá las direcciones de los métodos vinculados ...

4 la respuesta

¿Qué pasa si no presto atención a la advertencia "oculta al miembro heredado? Para hacer que el miembro actual anule esa implementación ... ”

Este es quizás un buen punto, pero se refiere a la advertencia de que el compilador emite si hace algo como: class A { public virtual void F() { } } class B : A { public void F() { } } Entonces obtienes la advertencia: 'EomApp1.B.F()' hides ...