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;
    
    };
    
    #endif
    

    KFZ.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;
    
    };
    #endif
    

    LKW.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


Anmelden zum Antworten