2010-11-23 23 views
5

Duplicar posible:
Why pure virtual function is initialized by 0?¿Qué significa "= 0" en C++?

Hola a todos ..

En primer lugar, sé que se declara un método virtual puro como esto en C++:

virtual void myMethod() = 0; 

.. pero como no pude dormir anoche, mi nerdy hea Llegué a pensar si la parte "= 0" tiene algún significado semántico, o si es "solo" allí para poder declarar métodos puramente virtuales.

¿Hay algún otro lugar donde se use este constructo?
(Y no - int v = 0; no cuenta: P)

+3

Duplicado de [¿Por qué la función virtual pura se inicializa por 0?] (http://stackoverflow.com/questions/2156634/why-pure- virtual-function-is-i nitialized-by-0) – ypnos

+1

Buen hallazgo. ASÍ QUE realmente necesita una mejor función de búsqueda (O necesito ser mejor al usarla :)) – cwap

+0

No lo habría encontrado si no estuviera ya en mi memoria. La memoria caché del cerebro aún no se ha descargado. – ypnos

Respuesta

0

Significa que el método es completamente virtual. Entonces, los subtipos deben implementarlo. Además, no tiene la implementación aquí y la clase no es instanciable.

3

Es un método virtual puro.

Esto significa que:

  • que no proporcionan la aplicación (hay una manera de proporcionar una pero no es útil)
  • queremos que la clase hija para implementar este método
  • nos hace que esta clase sea imposible de instanciar: solo una clase secundaria totalmente implementada puede ser
+0

El OP ya lo sabía. – jv42