Frage zu diesem Programm (Vererbung)



  • Hi !

    Unit1.cpp

    [cpp]//---------------------------------------------------------------------------

    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------

    #pragma argsused
    int main(int argc, char* argv[])
    {
    TAuto Polo;
    TAuto Corsa(10);
    TBmw Fuenfer;
    Polo.fahren(6);
    Polo.bremsen(1);
    Fuenfer.fahren(6);
    Fuenfer.turbo(20);
    getchar();
    return(0);
    }
    //----------------------------------------------------------------------------

    Unit1.h
    //---------------------------------------------------------------------------

    #ifndef Unit2H
    #define Unit2H
    //---------------------------------------------------------------------------
    #endif
    #include <iostream.h>

    class TAuto
    {
    private:

    public:
    int actgeschw;
    int maxgeschw;
    TAuto(int);
    TAuto();

    void bremsen(int),fahren(int);
    };

    class TBmw:public TAuto
    {
    public:
    void TBmw::turbo(int geschwindigkeit);
    };

    TAuto::TAuto()
    {
    actgeschw=2;
    cout<<"1.Konstruktor"<<endl;
    }

    TAuto::TAuto(int max)
    {
    maxgeschw=max;
    cout<<"2.Konstruktor"<<endl;
    }

    void TAuto::fahren(int km)
    {
    for(int i=actgeschw;i<=km;i++)
    {
    cout<<"Sie beschleunigen bis: "<<i<<"km\n";
    actgeschw=i;
    }
    cout<<"\n";
    };

    void TAuto::bremsen(int km)
    {
    for(int i=actgeschw;i>=km;i--)
    {
    cout<<"Sie bremsen herunter: "<<i<<"km\n";
    actgeschw=i;
    }
    cout<<"\n";
    };

    void TBmw::turbo(int geschwindigkeit)
    {
    for (int i=actgeschw; i<geschwindigkeit; i=i+2)
    {
    cout <<"Sie fahren gerade TURBO "<<i<<endl;
    actgeschw=i;
    }
    }[/cpp]

    1. Hi Das Programm funktioniert korrekt, nur habe ich paar Fragen zum Thema Vererbung.

    1. Ist TAuto die Basis Klasse?
    2. TBmw ist ja von der Klasse TAuto abgeleitet. Heißt das jetzt, die Klasse
    TBmw kann auch auf die Konstruktoren oder Methoden in der Klasse TAuto
    zugreifen und diese Benutzen ?

    Edit:
    Bitte die Code-Tags benutzen. Danke!



  • Das ganze ist eigentlich mehr C++

    aber die antwort auf deine Fragen, Ja, TAuto ist hier die Basisklasse und ja TBmw kann auf die Methoden von TAuto zugreifen 🙂



  • 1. Irgendwie schon.

    2. setz mal nen Haltepunkt in Konstruktor von TAuto. Wirkt der auch fuer BMW ?
    Wenn ja, wie kommt der BMW da ran? !!!

    Mist, zu lange getextet! 🕶



  • Hi !

    Mir ist eben noch eine Frage eingefallen :).

    class TBmw:public TAuto
    {
    public:
    void TBmw::turbo(int geschwindigkeit);
    };

    Und zwar zu diesen code.

    1. "public TAuto" heißt das, er soll nur in der Klasse TAuto auf den Public Bereich zugreifen (Auf die variablen methoden etc)?

    2. Kann man da auch private oder protectet benutzen, so dass er auf die Variablen, Methoden in diesen Bereich der Klasse zugreifen kann?

    3. Kann man das auch so machen, dass ich in allen 3 Bereichen (public, privat, protected) zugreifen kann ?



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Apokalyps schrieb:

    1. "public TAuto" heißt das, er soll nur in der Klasse TAuto auf den Public Bereich zugreifen (Auf die variablen methoden etc)?

    2. Kann man da auch private oder protectet benutzen, so dass er auf die Variablen, Methoden in diesen Bereich der Klasse zugreifen kann?

    3. Kann man das auch so machen, dass ich in allen 3 Bereichen (public, privat, protected) zugreifen kann ?

    Ich glaube du solltest dein C++ Buch nochmal zur Hand nehmen und das nachlesen.
    Oder hier: http://tutorial.schornboeck.net/vererbung.htm


Anmelden zum Antworten