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 Guide mit Code‑Beispielen

Was ist eine Klasse?

C++ Klassen & Objekte: Praktischer Guide mit Code‑Beispielen

In der Abbildung erzeugt ein einziger Prototyp zwei unterschiedliche Häuser mit verschiedenen Eigenschaften.

In diesem Tutorial lernen Sie:

  • Was eine Klasse ist und warum sie in C++ wichtig ist
  • Konkrete Klassenbeispiele
  • Die Rolle der Zugriffsmodifizierer private und public
  • Objekte erzeugen (Instanziierung)
  • Sicheren Zugriff auf Datenelemente
  • Member‑Funktionen innerhalb und außerhalb der Klassendefinition
  • Konstruktoren und Destruktoren in Aktion

Klassendeklaration

Eine Klasse zu deklarieren ist einfach: Verwenden Sie das Schlüsselwort class, gefolgt vom Klassennamen, und fassen Sie den Körper in geschweifte Klammern.

Syntax

class className {
    // datenelemente
    // memberfunktionen
};
  • className – Bezeichner für Ihre Klasse.
  • Datenelemente werden typischerweise als Variablen deklariert.
  • Memberfunktionen stellen Verhalten bereit.

Zugriffsmodifizierer: private vs. public

Zugriffsmodifizierer steuern die Sichtbarkeit von Klassenmembern.

  • private – Member sind nur innerhalb der Klasse oder ihrer Friends zugänglich.
  • public – Member können von überall dort zugegriffen werden, wo das Objekt sichtbar ist.

Objekte erzeugen (Instanziierung)

Objekte sind Instanzen einer Klasse. Die Deklaration folgt demselben Muster wie bei Variablen: className objectName;

Syntax

className objectName;
  • className – die Klasse, aus der das Objekt erstellt wird.
  • objectName – Bezeichner für das neue Objekt.

Instanziierung allokiert Speicher für das Objekt und kann dessen Konstruktor auslösen.

Auf Datenelemente zugreifen

Öffentliche Datenelemente werden über den Punkt‑Operator (.) angesprochen.

Beispiel

#include <iostream>
using namespace std;
class Phone {
public:
    double cost;
    int slots;
};
int main() {
    Phone Y6;
    Phone Y7;
    Y6.cost = 100.0;
    Y6.slots = 2;
    Y7.cost = 200.0;
    Y7.slots = 2;
    cout << "Cost of Huawei Y6 : " << Y6.cost << endl;
    cout << "Cost of Huawei Y7 : " << Y7.cost << endl;
    cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;
    cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;
    return 0;
}

Ausgabe:

C++ Klassen & Objekte: Praktischer Guide mit Code‑Beispielen

Warum Getter/Setter?

Direkter Zugriff oder Modifikation von Daten kann Kapselung brechen. Getter‑ und Setter‑Memberfunktionen bieten kontrollierten Zugriff.

Beispiel mit Kapselung

#include <iostream>
using namespace std;
class ClassA {
public:
    void setA(int val);
    int getA() const;
private:
    int a;
};
int ClassA::getA() const { return a; }
void ClassA::setA(int val) { a = val; }
int main() {
    ClassA obj;
    obj.setA(20);
    cout << "Value of a is: " << obj.getA();
    return 0;
}

Ausgabe:

C++ Klassen & Objekte: Praktischer Guide mit Code‑Beispielen

Protected Member und Vererbung

Geschützte Member sind innerhalb der Klasse und von abgeleiteten Klassen zugänglich, was kontrollierte Vererbung ermöglicht.

Beispiel

#include <iostream>
using namespace std;
class ParentClass {
protected:
    int value;
};
class ChildClass : public ParentClass {
public:
    void setId(int x) { value = x; }
    void displayValue() { cout << "Value is: " << value << endl; }
};
int main() {
    ChildClass c;
    c.setId(21);
    c.displayValue();
    return 0;
}

Ausgabe:

C++ Klassen & Objekte: Praktischer Guide mit Code‑Beispielen

Member‑Funktionen innerhalb vs. außerhalb der Klasse

Member‑Funktionen können inline innerhalb der Klasse definiert oder nur deklariert und später mithilfe des Scope‑Resolution‑Operators :: definiert werden.

Beispiel

#include <iostream>
#include <string>
using namespace std;
class Guru99 {
public:
    string tutorial_name;
    int id;
    void printName();
    void printId() { cout << "Tutorial id is: " << id; }
};
void Guru99::printName() {
    cout << "Tutorial name is: " << tutorial_name;
}
int main() {
    Guru99 guru;
    guru.tutorial_name = "C++";
    guru.id = 1001;
    guru.printName();
    cout << endl;
    guru.printId();
    return 0;
}

Ausgabe:

C++ Klassen & Objekte: Praktischer Guide mit Code‑Beispielen

Konstruktoren und Destruktoren

Konstruktoren initialisieren Objekte bei ihrer Erstellung, Destruktoren räumen kurz vor der Zerstörung eines Objekts auf.

Beispiel

#include <iostream>
using namespace std;
class ClassA {
public:
    ClassA() { cout << "Class constructor called" << endl; }
    ~ClassA() { cout << "Class destructor called" << endl; }
};
int main() {
    ClassA a; // Konstruktor aufgerufen
    int p = 1;
    if (p) {
        ClassA b; // Konstruktor aufgerufen, Destruktor am Blockende
    } // Destruktor für 'a' hier aufgerufen
    return 0;
}

Ausgabe:

C++ Klassen & Objekte: Praktischer Guide mit Code‑Beispielen

Wichtigste Punkte

  • C++ ist grundlegend objektorientiert; Klassen sind die Bausteine.
  • Eine Klasse gruppiert Daten und zugehörige Funktionen zu einer wiederverwendbaren Blaupause.
  • Nutzen Sie public, private, protected zur Durchsetzung von Kapselung.
  • Objekte mit Klassennamen gefolgt vom Objektnamen instanziieren.
  • Öffentliche Member über Punkt‑Operator zugreifen; für private Daten Getter/Setter nutzen.
  • Member‑Funktionen inline oder außerhalb per :: definieren.
  • Konstruktoren initialisieren Objekte; Destruktoren übernehmen Cleanup.

C Sprache

  1. C# Klassen & Objekte: Fundamente für robustes OOP
  2. C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
  3. C++ Friend-Funktionen und Friend-Klassen: Zugriffskontrolle meistern
  4. C++ Klassentemplates meistern: Ein praktischer Leitfaden
  5. C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
  6. C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
  7. C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
  8. C++ Structs erklärt mit praktischem Beispiel
  9. std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele
  10. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle