Estoy tratando de aprender C++ y me encontré con un error al tratar de descifrar la herencia.Herencia muy básica: error: class-name esperado antes de '{' token
Compilación: daughter.cpp En el archivo incluído en /home/jonas/kodning/testing/daughter.cpp:1: /home/jonas/kodning/testing/daughter.h:6: Error: se esperaba de clase nombre en presencia de '{' token de Proceso terminado con el estado 1 (0 minutos, 0 segundos) 1 errores, 0 cuidado
Mis archivos: mAIN.CPP:
#include "mother.h"
#include "daughter.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
mother mom;
mom.saywhat();
return 0;
}
mother.cpp:
#include "mother.h"
#include "daughter.h"
#include <iostream>
using namespace std;
mother::mother()
{
//ctor
}
void mother::saywhat() {
cout << "WHAAAAAAT" << endl;
}
mother.h:
#ifndef MOTHER_H
#define MOTHER_H
class mother
{
public:
mother();
void saywhat();
protected:
private:
};
#endif // MOTHER_H
daughter.h:
#ifndef DAUGHTER_H
#define DAUGHTER_H
class daughter: public mother
{
public:
daughter();
protected:
private:
};
#endif // DAUGHTER_H
y daughter.cpp:
#include "daughter.h"
#include "mother.h"
#include <iostream>
using namespace std;
daughter::daughter()
{
//ctor
}
Lo que quiero hacer es dejar que la hija hereda todo público de la clase madre (= saywhat()). ¿Qué estoy haciendo mal?
Además, no es necesario que incluya 'daughter.h' en' mother.h' o 'mother.cpp'. Usted casi ha clavado la herencia, realice los cambios que le han sugerido y debería estar listo para continuar. – nikhil
Un consejo de convención de C++, como dices que acabas de aprender: la primera letra de los nombres de las clases generalmente está en mayúscula. No es un requisito, pero encontrarás que es una convención de codificación consistente. Además, veo que has dejado comentarios positivos sobre algunas de las respuestas a continuación. ¡Acepta la respuesta que más te ha ayudado! Debería haber una marca de verificación al lado de cada respuesta, al hacer clic se aceptará. ¡Gracias por contribuir a StackOverflow! – WendiKidd