Grundlagen für das Projekt (Teil 2)



3. Objektorientierte Programmierung

3.3. Vererbung

Worum geht es? 

Dieser Code zeigt ein einfaches Beispiel für die Verwendung der Vererbung in C++. Es definiert eine Klasse "Car", die die grundlegenden Informationen über ein Auto speichert. Dann wird eine neue Klasse "HybridCar" definiert, die von der Klasse "Car" erbt. Die Klasse "HybridCar" besitzt dieselben Member-Variablen wie die Klasse "Car", aber hat auch eine neue Member-Variable "m_cap" zur Speicherung der Batteriekapazität und eine Member-Funktion "DriveElectrically", die berechnet, wie viel Strom nach einer bestimmten Fahrtstrecke verbraucht wurde.

Durch die Vererbung kann die Klasse "HybridCar" auf alle Member-Variablen und Member-Funktionen der Klasse "Car" zugreifen und erweitern. So kann man einfach und effizient Code wiederverwenden, indem man eine neue Klasse erstellt, die von einer bestehenden Klasse erbt.

Was kannst du danach?

  • Eine Klasse von einer anderen Klasse ableiten
  • Code wiederverwenden, indem man auf Member-Variablen und Member-Funktionen einer übergeordneten Klasse zugreift


#include <iostream>
using namespace std; 

class Car
{
public:
    // Konstruktor
    Car(string brand, string model)
    {
        m_brand = brand;
        m_model = model;
        cout << brand << " " << model << " gebaut\n";
    }

    string m_brand{}, m_model{};
};

// Vererbung
class HybridCar : public Car
{
public:
    HybridCar(string brand, string model, double cap) : Car(brand, model)
    {
        cout << "Hybridauto gebaut\n";
        m_cap = cap;
    }

    void DriveElectrically(int km)
    {
        m_cap -= km * 15 / 100;
        cout << "Ladung = " << m_cap << " kwh\n";
    }

    double m_cap{}; // Batterie-Kapazität
};

int main() 
{
    HybridCar prius("Toyota", "Prius", 8.8);
    prius.DriveElectrically(50);
    
    return 0;
}