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

4 la respuesta

¿Cuál es la ventaja de esta llamada a función indirecta?

Encontré el siguiente código en una biblioteca: class Bar { public: bool foo(int i) { return foo_(i); } private: virtual bool foo_(int i) = 0; }; Ahora me pregunto: ¿por qué usarías esta indirección? ¿Podría haber alguna razón por la cual lo ...

9 la respuesta

¿Cuál es el costo de rendimiento de tener un método virtual en una clase C ++?

Tener al menos un método virtual en una clase C ++ (o cualquiera de sus clases principales) significa que la clase tendrá una tabla virtual, y cada instancia tendrá un puntero virtual. Así que el costo de la memoria es bastante claro. Lo más ...

6 la respuesta

operador de asignación virtual C ++

Assignment Operator en C ++ puede hacerse virtual. ¿Por qué se requiere? ¿Podemos hacer que otros operadores también sean virtuales?

7 la respuesta

Puedo llamar a la función virtual de una clase base si la estoy anulando?

Di que tengo clasesFoo yBar configurado de esta manera: class Foo { public: int x; virtual void printStuff() { std::cout << x << std::endl; } }; class Bar : public Foo { public: int y; void printStuff() { // I would like to call ...

3 la respuesta

C ++ Puntero a función virtual

Si tienes una estructura como esta struct A { void func(); }; y una referencia como esta A& a;puedes obtener un puntero a sufunc método como este: someMethod(&A::func); Ahora, ¿qué pasa si ese método es virtual y no sabes lo que es en tiempo ...

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 ...

6 la respuesta

l tipo de retorno de la función virtual @overriding difiere y no es covariante

Ah, SO regresó justo a tiempo. Recibo un error extraño: 'B::blah': overriding virtual function return type differs and is not covariant from 'A::blah'Aquí está el código que causa el problema: class A { public: class Inner { }; virtual Inner ...

20 la respuesta

¿Por qué no tenemos un constructor virtual en C ++?

¿Por qué C ++ no tiene un constructor virtual?

12 la respuesta

Las funciones virtuales en línea realmente no tienen sentido?

Recibí esta pregunta cuando recibí un comentario de revisión de código que decía que las funciones virtuales no necesitan estar en línea. Pensé que las funciones virtuales en línea podrían ser útiles en escenarios donde las funciones se ...

9 la respuesta

¿Por qué C # implementa métodos como no virtuales de forma predeterminada?

A diferencia de Java, ¿por qué C # trata los métodos como funciones no virtuales de forma predeterminada? ¿Es más probable que sea un problema de rendimiento en lugar de otros posibles resultados? Recuerdo haber leído un párrafo de Anders ...