¿Por qué este código:constructores
class A
{
public:
explicit A(int x) {}
};
class B: public A
{
};
int main(void)
{
B *b = new B(5);
delete b;
}
resultado de estos errores:
main.cpp: In function ‘int main()’: main.cpp:13: error: no matching function for call to ‘B::B(int)’ main.cpp:8: note: candidates are: B::B() main.cpp:8: note: B::B(const B&)
B No debe heredar el constructor de A?
(esto se utiliza gcc)
Esto es bastante mal, porque hace más de un año que ha habido un compilador que realmente puede construir el código anterior :-) – Mikhail
@Mikhail: Tanto ruido metálico y g ++ ahora debe apoyar heredar constructores: http: // tañido .llvm.org/cxx_status.html http://gcc.gnu.org/projects/cxx0x.html Recomienda votar esta como la respuesta correcta. –
preguntando, ¿un constructor heredado podría acceder/inicializar los miembros privados de la clase base? ¿O debería especificarlos como protegidos? – Markasoftware