Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung

C++ Klassen & Objekte

Entdecken Sie, wie Sie Daten und Verhalten in C++ mit Klassen und Objekten kapseln, mit klaren Beispielen und Best Practices.

Warum Klassen verwenden?

In früheren Lektionen haben wir Funktionen und Variablen erkundet. Wenn Projekte wachsen, wird das Gruppieren verwandter Daten und Operationen für Wartbarkeit und Klarheit essenziell. Eine Klasse lässt Sie Datenelemente und Mitgliedsfunktionen in eine einzelne logische Einheit bündeln und ermöglicht objektorientierte Programmierung (OOP) – das Fundament modernen C++-Designs.

Illustration: Ein Raum

Betrachten Sie einen rechteckigen Raum. Sie müssen seine length, breadth und height speichern, während Sie gleichzeitig Fläche und Volumen berechnen. Mit einer Klasse können Sie diese eng gekoppelt halten:

class Room
{
public:
    double length;
    double breadth;
    double height;

    double calculateArea()
    {
        return length * breadth;
    }

    double calculateVolume()
    {
        return length * breadth * height;
    }
};

Eine Klasse definieren

Eine Klasse wird mit dem class-Schlüsselwort definiert, gefolgt von ihrem Namen und einem Körper in geschweiften Klammern, endend mit einem Semikolon:

class ClassName
{
    // data members
    // member functions
};

Im obigen Beispiel ist Room ein Bauplan. Die Variablen darin heißen Datenelemente; die Funktionen heißen Mitgliedsfunktionen.

Objekte erstellen

Eine Klasse zu definieren spezifiziert nur das Layout; es allokiert keinen Speicher. Objekte sind konkrete Instanzen, die aus diesem Bauplan erstellt werden:

Room room1; // einzelnes Objekt
Room room2, room3; // mehrere Objekte in einer Deklaration

Objekte können überall instanziiert werden – innerhalb von Funktionen, anderen Klassen oder global – solange ihr Gültigkeitsbereich respektiert wird.

Auf Mitglieder zugreifen

Verwenden Sie den Punktoperator (.), um Mitgliedsfunktionen aufzurufen oder auf Datenelemente zuzugreifen:

room1.length = 5.5;
double area = room1.calculateArea();

Beispiel 1: Raum-Metriken berechnen

#include <iostream>
using namespace std;

class Room
{
public:
    double length;
    double breadth;
    double height;

    double calculateArea()
    {
        return length * breadth;
    }

    double calculateVolume()
    {
        return length * breadth * height;
    }
};

int main()
{
    Room room1;
    room1.length = 42.5;
    room1.breadth = 30.8;
    room1.height = 19.2;

    cout << "Area of Room = " << room1.calculateArea() << endl;
    cout << "Volume of Room = " << room1.calculateVolume() << endl;
    return 0;
}

Ausgabe

Area of Room = 1309
Volume of Room = 25132.8

Kapselung: Public vs. Private

Kapselung schützt Daten, indem sie den Zugriff kontrolliert. Als private deklarierte Mitglieder sind von der Außenwelt verborgen und können nur über öffentliche Mitgliedsfunktionen zugegriffen werden.

class Test
{
private:
    int a;
    void function1() {}

public:
    int b;
    void function2() {}
};

Im folgenden Beispiel sind Datenelemente privat und werden über eine öffentliche Methode initialisiert:

#include <iostream>
using namespace std;

class Room
{
private:
    double length;
    double breadth;
    double height;

public:
    void initData(double len, double brth, double hgt)
    {
        length = len;
        breadth = brth;
        height = hgt;
    }

    double calculateArea()
    {
        return length * breadth;
    }

    double calculateVolume()
    {
        return length * breadth * height;
    }
};

int main()
{
    Room room1;
    room1.initData(42.5, 30.8, 19.2);
    cout << "Area of Room = " << room1.calculateArea() << endl;
    cout << "Volume of Room = " << room1.calculateVolume() << endl;
    return 0;
}

Ausgabe

Area of Room = 1309
Volume of Room = 25132.8

Weiterführende Literatur

Für autoritative Richtlinien konsultieren Sie den ISO/IEC 14882:2023 C++ Standard oder vertrauenswürdige Ressourcen wie cplusplus.com und cppreference.com.

C Sprache

  1. C# Klassen & Objekte: Fundamente für robustes OOP
  2. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  3. C# Partielle Klassen und Methoden verstehen
  4. Versiegelte Klassen und Methoden in C# meistern
  5. C++ Friend-Funktionen und Friend-Klassen: Zugriffskontrolle meistern
  6. C++ Klassentemplates meistern: Ein praktischer Leitfaden
  7. Java Klassen und Objekte: Praktischer Leitfaden
  8. C++ Structures vs. Classes: Praktischer Leitfaden für Embedded-Entwickler
  9. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle
  10. C++ Speicherklassen: Scope, Lifetime & Verwendung