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

Datenabstraktion in C++: Interface-Implementierung-Trennung

Datenabstraktion = Bereitstellung wesentlicher Informationen nach außen, Verbergen von Implementierungsdetails. Programmier- und Designtechnik basierend auf Trennung von Interface und Implementierung.

Reale Analogie: Fernseher

Sie bedienen: Ein/Aus, Kanal, Lautstärke, externe Geräte (Lautsprecher, DVD). Aber Sie kennen nicht die Internas: Signalempfang, Dekodierung, Bilddarstellung. TV trennt interne Implementierung von externem Interface.

C++ Klassen & Datenabstraktion

Klassen bieten öffentliche Methoden zur Manipulation von Objektzustand, ohne interne Implementierung offenzulegen.

Beispiel: sort() aufrufen ohne Sortieralgorithmus zu kennen. Implementierung kann sich ändern – Interface bleibt stabil → Ihr Code funktioniert weiter.

cout-Beispiel

#include <iostream>
using namespace std;
int main() {
    cout << "Hello C++" << endl;
    return 0;
}

Sie nutzen cout (Klasse ostream) ohne zu wissen, wie Text auf den Bildschirm kommt. Nur öffentliches Interface nötig.

Zugriffsspezifizierer erzwingen Abstraktion

Keine Beschränkung für Häufigkeit von Zugriffslabels. Jedes Label gilt bis zum nächsten Label oder schließender Klammer der Klasse.

Vorteile der Datenabstraktion

Datenmember nur in private → Autor frei bei Änderungen. Bei public Daten: Jede Funktion, die direkt zugreift, könnte bei Repräsentationsänderung brechen.

Beispiel: Adder-Klasse

#include <iostream>
using namespace std;
class Adder {
public:
    Adder(int i=0) { total = i; }
    void addNum(int number) { total += number; }
    int getTotal() { return total; }
private:
    int total;  // versteckt
};
int main() {
    Adder a;
    a.addNum(10); a.addNum(20); a.addNum(30);
    cout << "Total " << a.getTotal() << endl;  // 60
    return 0;
}

addNum, getTotal = öffentliche Schnittstelle. total = privat, für Nutzer unsichtbar, aber intern nötig.

Designstrategie

Abstraktion trennt Code in Interface und Implementierung. Beim Design: Interface unabhängig von Implementierung halten. Bei Implementierungsänderung: Interface intakt → Nutzerprogramme nur neu kompilieren.

C Sprache

  1. C++-Datentypen verstehen: Grundlagen, Modifizierer und Best Practices
  2. C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
  3. C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
  4. C++ Klassentemplates meistern: Ein praktischer Leitfaden
  5. C++ char‑Datentyp meistern: Deklaration, ASCII & Konvertierungstechniken
  6. Java Abstraktion erklärt: Code vereinfachen & Lesbarkeit steigern
  7. Java Datenstrukturen: Kernklassen & Collections Framework erkunden
  8. C++ Speicherklassen: Scope, Lifetime & Verwendung
  9. C++ Datenstrukturen: Arrays, Structs & mehr für effiziente Programme
  10. Polymorphie in C++: Praktischer Leitfaden