Ich bin derzeit viel Frustration mit Header-Datei in meinem Start-Projekt. Bisher habe ich eine Header-Datei mit meiner Basis-Datei verknüpft und ich bekomme immer den gleichen Fehler, dass die Kompilierung meine Basisklasse nicht lesen kann.C++ Header-Datei Fehler: Basisklasse undefiniert
Ich glaube, dass es ein Problem mit dem Lesen der Header-Datei gibt. Was soll ich machen?
// Aktualisieren es Kompilierungsfehler mit dem Build
Haupt CPP-Datei
#include <string>
#include "animal.h"
using namespace std;
enum COLOR { Green, Blue, White, Black, Brown };
int main() {
cout << "Starting" << endl;
int value = 0; Mammal *zoo[3];
int i = 0;
cout << "Program exiting …. " << endl;
return 0;
}
Header-Datei
#include <iostream>
#include <string>
#ifndef HEADER_H
#define HEADER_H
using namespace std;
enum COLOR { Green, Blue, White, Black, Brown };
class Animal {
public:
Animal() {
cout << "constructing Animal object " << _name << endl;
}
~Animal() {
cout << "destructing Animal object " << _name << endl;
}
Animal(std::string n, COLOR c) {
_name = n; _color = c;
cout << "constructing " << _name << " Color " <<
endl;
}
virtual void speak() const { cout << "Animal speaks " << endl; }
//void speak() const { cout << "Animal speaks " << endl; }
virtual void move() = 0;
void setName(std::string n) { _name = n; }
void setCOLOR(COLOR c) { _color = c; }
private:
std::string _name; COLOR _color;
};
class Mammal : public Animal {
public:
Mammal() {}
Mammal(std::string n, COLOR c) {
setName(n);
setCOLOR(c);
cout << "constructing Mammal object " << endl;
}
~Mammal() { cout << "destructing Mammal object " << endl; }
};
#endif
Sollte nicht 'COLOR' in' animal.h' deklariert werden, bevor Sie es verwenden? – user0042
'COLOR' ist in der cpp-Datei definiert und in der Kopfzeile nicht sichtbar, Sie verwenden' cout' und andere Sachen aus 'std'-Namespace in der Header-Datei, ohne' :: std :: 'korrekt voranzustellen. – VTT