Me parece que uno de los errores de compilación más lentos para mí es "no se puede crear una instancia de clase abstracta", ya que el problema es que no pretendía que la clase ser abstracto y el compilador no enumera qué funciones son abstractas. Tiene que haber una manera más inteligente de resolver esto que leer los encabezados 10 veces hasta que finalmente note un "const" perdido en alguna parte. ¿Cómo resuelves esto?Método para resolver el error: "no se puede crear una instancia de clase abstracta"
Respuesta
C++ te dice exactamente qué funciones son abstractas, y en el que se declaran:
class foo {
virtual void x() const = 0;
};
class bar : public foo {
virtual void x() { }
};
void test() {
new bar;
}
test.cpp: In function ‘void test()’:
test.cpp:10: error: cannot allocate an object of abstract type ‘bar’
test.cpp:5: note: because the following virtual functions are pure within ‘bar’:
test.cpp:2: note: virtual void foo::x() const
Así que tal vez tratar de compilar el código con C++, o especificar su compilador para que otros puedan dar sugerencias útiles para su compilador específico.
cannot instantiate abstract class
Sobre la base de este error, mi conjetura es que está utilizando Visual Studio (ya que eso es lo que Visual C++ dice cuando intenta crear una instancia de una clase abstracta).
Mire la ventana Salida de Visual Studio (Ver => Salida); la salida debe incluir una declaración después de que el error que indica:
stubby.cpp(10) : error C2259: 'bar' : cannot instantiate abstract class
due to following members:
'void foo::x(void) const' : is abstract
stubby.cpp(2) : see declaration of 'foo::x'
(Ese es el error dado para el código de ejemplo de bdonlan)
En Visual Studio, la ventana "Lista de errores" sólo se muestra la primera línea de una mensaje de error.
C++ Builder le dice qué método es abstracto:
class foo {
virtual void x() const = 0;
};
class bar : public foo {
virtual void x() { }
};
new bar;
[BCC32 Error] File55.cpp(20): E2352 Cannot create instance of abstract class 'bar'
[BCC32 Error] File55.cpp(20): E2353 Class 'bar' is abstract because of 'foo::x() const = 0'
- 1. "No se puede crear una instancia de la clase abstracta o interfaz" mensaje C# error
- 2. Clase 'Habitación' es abstracto; no se puede crear una instancia
- 3. No se puede crear una instancia de la clase abstracta o interfaz
- 4. ¿Qué causa el error de Flash # 2012 (no se puede crear una instancia de la clase)?
- 5. No se puede crear una instancia javax.servlet.ServletException
- 6. IntellJ IDEA "no se puede resolver el símbolo" y "no se puede resolver el método"
- 7. Usando un método de una clase abstracta
- 8. UnauthorizedAccessException no puede resolver el error Directory.GetFiles
- 9. ¿Se puede extender (heredar) una clase no abstracta en Java?
- 10. error no detectada: [Ext.createByAlias] No se puede crear una instancia de alias no reconocido: widget de
- 11. "No se puede crear una instancia del tipo ..."
- 12. Cómo crear una clase que sea abstracta, pero no internamente
- 13. java.lang.RuntimeException: No se puede crear una instancia de servicio .GCMIntentService
- 14. símbolo no se puede resolver
- 15. C++: Crear clase abstracta con método abstracto y anular el método en una subclase
- 16. Derivar clase abstracta de la clase no abstracta
- 17. Método vacío en una clase abstracta
- 18. No se puede crear una instancia del tipo HttpClient
- 19. No se puede crear el error autorreferencial
- 20. R no se puede resolver el error al utilizar ActionBarSherlock
- 21. ¿Existe una solución para el error de Android "No se puede resolver el método virtual java/beans/PropertyDescriptor"?
- 22. android.app.Application no se puede crear una instancia debido a NullPointerException
- 23. Error de hibernación: no se puede resolver la tabla
- 24. no puede resolver método de la suma
- 25. Error: el calendario no se puede resolver en JSP
- 26. El valor StaticExtension no se puede resolver
- 27. No se puede resolver la clase MapActivity en Android
- 28. ¿Cómo resolver el error "no se puede llamar al método ... de indefinido"?
- 29. Backbone relacional - no puede crear una instancia más de una ,,,
- 30. Crear instancia de clase desde el método estático
cuales compilador? – Naveen
Algunos compiladores * DO * mencionan qué método (s) hizo que la clase sea abstracta cuando se produce el error de instancia. –