Basisklasse undefiniert
-
Header
#ifndef KFZ_H #define KFZ_H #include "LKW.h" #include <iostream> class KFZ { public: // Standartkonstruktor KFZ(); // Konstruktor KFZ(char* nHersteller, char* Typ, int nTankgr,double nVerbrauch100Km,double nTankinhalt,double nKmStand,double nGewicht); // Alles Zeigen void Show(); // Attribute private: char* Hersteller; char* Typ; int Tankgr; double Verbrauch100Km; double Tankinhalt; double KmStand; double Gewicht; }; #endifKFZ.cpp
#include <iostream> #include "KFZ.h" using namespace std; KFZ::KFZ(char* nHersteller, char* nTyp,int nTankgr,double nVerbrauch100Km,double nTankinhalt,double nKmStand,double nGewicht): Hersteller(nHersteller),Typ(nTyp),Tankgr(nTankgr), Verbrauch100Km(nVerbrauch100Km), Tankinhalt(nTankinhalt), KmStand(nKmStand), Gewicht(nGewicht) {} void KFZ::Show() { cout<< "Hersteller : "<< Hersteller<<endl; cout<< "Typ : "<< Typ<<endl; cout<< "Tankgroeße : "<< Tankgr <<endl; cout<< "Verbrauch auf 100 Km : "<< Verbrauch100Km <<endl; cout<< "Tankinhalt zurzeit : "<< Tankinhalt <<endl; cout<< "Aktueller Km Stand : "<< KmStand <<endl; cout<< "Zulässiges Gewicht : "<< Gewicht <<endl; }LKW.h
#ifndef LKW_H #define LKW_H #include <iostream> #include "KFZ.h" class LKW : public KFZ { public: // Konstruktor LKW(int nAnzahlAchsen,int nAnhaenger, double nlaengeMeter); void Show(); // Attribute private: int AnzahlAchsen; int Anhaenger; double laengeMeter; }; #endifLKW.cpp
#include <iostream> #include "LKW.h" using namespace std; LKW::LKW(int nAnzahlAchsen,int nAnhaenger, double nlaengeMeter): AnzahlAchsen(nAnzahlAchsen),Anhaenger(nAnhaenger),laengeMeter(nlaengeMeter){} //show void LKW::Show() { cout<< "Anzahl der Achsen : "<< AnzahlAchsen<<endl; cout<< "Typ : "<< Anhaenger<<endl; cout<< "Tankgroeße : "<< laengeMeter<<endl; }main.cpp
#include <iostream> #include "KFZ.h" #include "LKW.h" using namespace std; int main() { KFZ Audi("Audi","R8",50,16.8,30.5,100000,1.0); LKW Mercedes(2,1,40.5); Audi.Show(); Mercedes.Show(); system("pause"); return 0; }Fehlermeldung.
1>------ Erstellen gestartet: Projekt: KFZ, Konfiguration: Debug Win32 ------
1> main.cpp
1>c:\users\grhei_000\documents\visual studio 2010\projects\kfz\kfz\lkw.h(8): error C2504: 'KFZ': Basisklasse undefiniert
1> LKW.cpp
1> KFZ.cpp
1>c:\users\grhei_000\documents\visual studio 2010\projects\kfz\kfz\lkw.h(8): error C2504: 'KFZ': Basisklasse undefiniert
1> Code wird generiert...
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Leider weis ich nicht wo sich der Fehler versteckt ...
-
Der Fehler befindet sich in der dritten Zeile der ersten genannten Datei.
-
Deine Header inkludieren sich gegenseitig.
-
Nach dem Entfernen des unötigen #include "LKW.h" in der Kfz.h ist der fehler behoben... und dieser neue taucht auf
1>------ Erstellen gestartet: Projekt: KFZ, Konfiguration: Debug Win32 ------
1> main.cpp
1> KFZ.cpp
1> Code wird generiert...
1> Kompilieren...
1> LKW.cpp
1> Code wird generiert...
1>LKW.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall KFZ::KFZ(void)" (??0KFZ@@QAE@XZ)" in Funktion ""public: __thiscall LKW::LKW(int,int,double)" (??0LKW@@QAE@HHN@Z)".
1>c:\users\grhei_000\documents\visual studio 2010\Projects\KFZ\Debug\KFZ.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Wieso bleibst Du nicht im ursprünglichen Thread?
http://www.c-plusplus.net/forum/313240