Fehler bei der Vererbung nicht nachzuvollziehen



  • Hi, mein Problem ist volgendes. Wenn ich mein Prog compilieren möchte erhalte ich folgende Fehlermeldung: "Prog8_1.cpp": E2316 'GesammtGewicht' ist kein Element von 'Laster' in Funktion main() in Zeile 35 . Wenn ich das richtig deute will mir der Compiler damit sagen, dass 'GesammtGewicht' kein Element der Klasse 'Laster' ist. Nur kann ich keinen Fehler in meinem Code finden, der diesen Fehler verursachen könnte.
    Der Code der mit 'GesammtGewicht zu tun hat habe ich FETT hinterlegt

    Könnte es an meinem Kompeiler liegen? Ich benutze den C++BuilderX von Borland

    Für jede Hife bedanke ich mich jetzt schon mal im voraus.

    [cpp]// Kapitel 7 - Programm 8 - ALLEVEH.CPP
    #include <iostream.h>
    #include "vehikel.h"
    #include "auto.h"
    #include "laster.h"

    int main()
    {
    Vehikel Hochrad, Fahrrad;

    Hochrad.Initialisiere( 1, 5.7 );
    Fahrrad.Initialisiere( 2, 2.3 );
    cout << "Das Hochrad hat " << Hochrad.HoleRaeder() << " Rad.\n";
    cout << "Das Fahrrad hat " << Fahrrad.HoleRaeder() << " Räder.\n";
    cout << "Die Radlast des Hochrades betraegt " << Hochrad.Radlast() << " kg auf dem einzigen Rad.\n";
    cout << "Die Radlast des Fahrrades betraegt " << Fahrrad.Radlast() << " kg auf dem einzigen Rad.\n";
    cout << "Das Hochrad wiegt " << Hochrad.HoleGewicht() << " kg.\n";
    cout << "Das Fahrrad wiegt " << Fahrrad.HoleGewicht() << "kg.\n\n";

    Auto Sedan;

    Sedan.Initialisiere( 4, 1600.0, 5 );
    cout << "Der Sedan fuehrt " << Sedan.Passagiere() << " Passagiere mit sich.\n";
    cout << "Der Sedan wiegt " << Sedan.HoleGewicht() << " kg.\n";
    cout << "Die Radlast des Sedan ist " << Sedan.Radlast() << " kg pro Rad.\n\n";

    Laster Sattelschlepper, Tieflader;

    Sattelschlepper.Initialisiere( 18, 5700.0 );
    Sattelschlepper.InitLaster( 1, 15300.0 );
    Tieflader.Initialisiere( 18, 15700.0 );
    Tieflader.InitLaster( 1, 115300.0 );
    cout << "Der Sattelschlepper wiegt " << Sattelschlepper.HoleGewicht() << " kg.\n";
    cout << "Die Effizienz des Sattelschleppers ist " << 100.0 * Sattelschlepper.Effizienz() << " Prozent.\n";
    cout << "Das Gesammtgewicht des Tieflader ist " << Sattelschlepper.GesammtGewicht() << " kg.\n";
    cout << "Der Tieflader wiegt " << Tieflader.HoleGewicht() << " kg.\n";

    return 0;
    }

    --------------------------------------------------------------

    // Kapitel 7 - Programm 7 - LASTER.CPP
    #include "laster.h"

    void Laster::InitLaster(int WieViele, float MaxLadung)
    {
    Passagieranzahl = WieViele;
    Ladung = MaxLadung;
    }

    float Laster::Effizienz(void)
    {
    return Ladung /(Ladung + Gewicht);
    }

    float Laster::GesammtGewicht(void)
    {
    return (Ladung + Gewicht);
    }

    int Laster::Passagiere(void)
    {
    return Passagieranzahl;
    }

    -----------------------------------------------------------

    // Kapitel 7 - Programm 6 - LASTER.H
    #ifndef LASTER_H
    #define LASTER_H

    #include "vehikel.h"

    class Laster : public Vehikel
    {
    int Passagieranzahl;
    float Ladung;
    public:
    void InitLaster(int WieViele = 2, float MaxLadung = 10000.0);
    float Effizienz(void);
    int Passagiere(void);
    float GesammtGewicht(void);
    };

    #endif[/cpp]

    Edit:
    Bitte die Code-Tags benutzen. Danke!



  • Hast du den Code hier per Cutn'Paste reinkopiert? Mit anderen Worten: bist du sicher, dass du nicht zwischendurch z.B. mal die (orthographisch korrekte ;)) Variante 'GesamtGewicht' mit einem 'm' verwendet hast?



  • hife habe es immer nich nicht geändert. aber daran liegt es ja auch nicht. Gibt es bekannte bugs vom C++BuilderX ???



  • Dein hier gezeigter Code, minus aller Bezüge auf die fehlende vehikel.h etc., lässt sich problemlos im CBX kompilieren.


Anmelden zum Antworten