Sto cercando di imparare C++ e mi sono imbattuto in un errore mentre cercavo di capire l'ereditarietà.Eredità molto di base: errore: nome classe previsto prima del token '{'
Compilazione: daughter.cpp In inclusi file da /home/jonas/kodning/testing/daughter.cpp:1: /home/jonas/kodning/testing/daughter.h:6: errore: classe- previsto nominare prima di '{' token processo terminato con stato 1 (0 minuti, 0 secondi) 1 errori, 0 avvertimenti
miei file: 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
e daughter.cpp:
#include "daughter.h"
#include "mother.h"
#include <iostream>
using namespace std;
daughter::daughter()
{
//ctor
}
Quello che voglio fare è quello di lasciare la figlia ereditare tutto pubblico dalla classe madre (= saywhat()). Che cosa sto facendo di sbagliato?
Inoltre non è necessario includere 'daughter.h' nel' mother.h' o 'mother.cpp'. Hai quasi inchiodato l'ereditarietà, apporta le modifiche suggerite e dovresti essere pronto. – nikhil
Un suggerimento per la convenzione C++, come dici tu stai solo imparando - la prima lettera dei nomi di classe è generalmente in maiuscolo. Non è un requisito, ma troverai una convenzione di codifica coerente. Inoltre, vedo che hai lasciato commenti positivi su alcune risposte qui sotto - per favore accetta la risposta che ti ha aiutato di più! Ci dovrebbe essere un segno di spunta accanto a ciascuna risposta, facendo clic su di esso lo accetterà. Grazie per aver contribuito a StackOverflow! – WendiKidd