Forum: PC-Programmierung C++ und Klassen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Dave S. (dave_s561)


Lesenswert?

Hallo,

beschäftige mich auch gerade mit C++, habe aber massive Schwierigkeiten 
mit den "Klassen" gibt es vielleicht hier jemanden, welcher mir die 
Klasse auf simpelste erklären kann?
Mit den Anleitungen in Englisch komme ich nicht richtig in die Materie.

Freue mich qauf eure Antworten.

: Bearbeitet durch User
von Thomas F. (tommf)


Lesenswert?

Es gibt auch genügend deutsche Texte, z.B. unter 
https://de.wikibooks.org/wiki/C%2B%2B-Programmierung:_Klassen. Die 
Suchmaschine findet bestimmt noch mehr.

von Markus K. (markus-)


Lesenswert?

Man hat einfach ein paar Daten und packt die Funktionen zur Verwaltung 
dieser Daten gleich mit dazu. Das ist alles.

Da kann man dann Zugriffsrechte festlegen (private/proteced/public) und 
man kann eine Klasse als Basis für eine andere Klasse nehmen (ableiten) 
und sie dann passend erweitern.

von PittyJ (Gast)


Lesenswert?

Früher gab es noch Bücher, die man sich einfach durchgelesen und die 
Beispiele nachprogrammiert hat. Ganze Generationen haben es so gelernt.
Und die gibt es sogar auf Deutsch.

https://www.amazon.de/Die-Programmiersprache-aktualisierte-Erfinder-Programmers/dp/3827330467/ref=sr_1_9?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3PL71NWUET93D&dchild=1&keywords=stroustrup+c%2B%2B&qid=1614146688&sprefix=Stoustrup%2Caps%2C175&sr=8-9

von Stefan ⛄ F. (stefanus)


Lesenswert?

Dave S. schrieb:
> Freue mich qauf eure Antworten.

Vielleicht hilft dir das. http://stefanfrings.de/qt_lernen/index.html

von Hans-Georg L. (h-g-l)


Lesenswert?


von Cornelius (Gast)


Lesenswert?

Hier gibt's ein paar Übungen auf dem Arduino:

Beitrag "C++ Arduino Grundlagen"

von MiroWierdo (Gast)


Lesenswert?

@Dave,

kannst du deine Probleme benennen?

Ich weiß noch über meine Verwirrung um den Zusammenhang von Klassen und 
Objekten. Geht es auch darum?

Ich finde meine Teig-Plätzchenform-Analogie ganz gut:
Denn ungefähr so stehen Klassen und Objekte zu einander - die Form ist 
die Klasse, das Plätzchen das Objekt, der Teig der RAM oder Flash.

Mit der Form/Klasse beschreibst du, wie das Plätchen/Objekt 
aussehen/können soll.
Durch Ausstechen aus dem Teig mit der Form entstehen greifbare 
Plätchen/Objekte.

Auch zum intuitiven Verständnis frage dich
- Was würdest du tun, wenn du viele gleiche Plätchen haben willst?
- Kannst du auf einer Form "arbeiten" (Zucker, Mandeln drauf streuen)

von Stefan ⛄ F. (stefanus)


Lesenswert?

MiroWierdo schrieb:
> Ich finde meine Teig-Plätzchenform-Analogie ganz gut

Schöner Vergleich, gefällt mir.

von Holger (Gast)


Lesenswert?

MiroWierdo schrieb:
> Ich finde meine Teig-Plätzchenform-Analogie ganz gut

Die Analogie finde ich auch recht gut :)
Ich überlege gerade, wie man damit noch eine Ableitung verdeutlichen 
könnte. Nicht, um die Analogie in Frage zu stellen, sondern um diesen 
Vergleich auch dafür verwenden zu können.

von Stefan ⛄ F. (stefanus)


Lesenswert?

Ich sage immer, dass die Klasse der Bauplan von etwas ist, und die 
Objekt-Instanz ein gebautes Produkt.

von Bernd (Gast)


Lesenswert?

>Ich überlege gerade, wie man damit noch eine Ableitung verdeutlichen
>könnte. Nicht, um die Analogie in Frage zu stellen, sondern um diesen
>Vergleich auch dafür verwenden zu können.

Die Ableitung könnte man mit Schokostreuseln, Zuckerguss usw. auf dem 
"Basis-Plätzchen" erklären.

von Cyblord -. (cyblord)


Lesenswert?

Bernd schrieb:
>>Ich überlege gerade, wie man damit noch eine Ableitung verdeutlichen
>>könnte. Nicht, um die Analogie in Frage zu stellen, sondern um diesen
>>Vergleich auch dafür verwenden zu können.
>
> Die Ableitung könnte man mit Schokostreuseln, Zuckerguss usw. auf dem
> "Basis-Plätzchen" erklären.

Fragt sich halt ob man gerne Pädagogik für Zurückgebliebene betreiben 
will. Für Stefan wissen wir schon dass die Antwort "JA" lautet.

von Bernd (Gast)


Lesenswert?

Die Frage stellt sich mir nicht, weil es auch nicht schlimm wäre wenn es 
so wäre.
Ich finde es immer sehr geil wie schnell hier geurteilt wird und ein 
"nicht wissen" direkt mit zurückgeblieben gleichgesetzt wird.
Frage mich dann immer ob es bei Leuten die sowas schreiben überhaupt 
etwas gibt was sie nicht wissen.

Ich finde solche Vergleiche mit Plätzchen und Co ziemlich gut damit sich 
Anfänger, Schüler usw. möglichst schnell Fortschritte machen und es 
möglichst schnell verstehen. Tiefer in die Materie einsteigen machen sie 
dann von ganz alleine, falls sie es weiter verfolgen.

von Rolf M. (rmagnus)


Lesenswert?

Bernd schrieb:
>>Ich überlege gerade, wie man damit noch eine Ableitung verdeutlichen
>>könnte. Nicht, um die Analogie in Frage zu stellen, sondern um diesen
>>Vergleich auch dafür verwenden zu können.
>
> Die Ableitung könnte man mit Schokostreuseln, Zuckerguss usw. auf dem
> "Basis-Plätzchen" erklären.

Damit kann man Komposition erklären, aber Ableitung? Ein Plätzchen kann 
einen Zuckerguss haben, aber es ist nicht einer.

von mh (Gast)


Lesenswert?

Bernd schrieb:
> Ich finde solche Vergleiche mit Plätzchen und Co ziemlich gut damit sich
> Anfänger, Schüler usw. möglichst schnell Fortschritte machen und es
> möglichst schnell verstehen. Tiefer in die Materie einsteigen machen sie
> dann von ganz alleine, falls sie es weiter verfolgen.

Gibt es einen Grund, zu glauben, dass schlechte Beispiele und Analogien 
Anfängern beim lernen helfen? Mich haben schlechte Beispiele immer beim 
Lernen aufgehalten. Steckt den Aufwand lieber in ein gutes Beispiel von 
Problem und Lösung. Welches Problem löst der Teig und die Plätzchenform 
in meiner Software? Muss ich meine SPI-Treiber Klasse bei 200°C 
Oberhitze oder 180°C Umluft backen, um ein nutzbares Objekt zu erhalten?

Beitrag #6606396 wurde vom Autor gelöscht.
von Sheeva P. (sheevaplug)


Lesenswert?

Dave S. schrieb:
> beschäftige mich auch gerade mit C++, habe aber massive Schwierigkeiten
> mit den "Klassen" gibt es vielleicht hier jemanden, welcher mir die
> Klasse auf simpelste erklären kann?
> Mit den Anleitungen in Englisch komme ich nicht richtig in die Materie.

In [1] ging es zwar primär um Python, aber ich denke, der Beitrag 
erklärt ganz gut, wozu diese Klassendingsis gut sind.

[1] Beitrag "Re: Python: Problem mit Objekt-Variable"

von Sheeva P. (sheevaplug)


Lesenswert?

Bernd schrieb:
> Ich finde es immer sehr geil wie schnell hier geurteilt wird und ein
> "nicht wissen" direkt mit zurückgeblieben gleichgesetzt wird.
> Frage mich dann immer ob es bei Leuten die sowas schreiben überhaupt
> etwas gibt was sie nicht wissen.

Nein, Cyblord weiß alles, vor allem: besser. Glaubt er. ;-)

von malsehen (Gast)


Lesenswert?

Mal'ne gemühtliche Ecke!

von rbx (Gast)


Lesenswert?

Eine ganz gute Hilfe sind u.a. der UML-Wikipedia-Artikel (merken im 
Sinne von behalten um was es geht) im Verbund mit den 
Programmierbeispielen aus Accelerated C++ -
Alles auf einmal ist ja auch ein bisschen viel.
In dem Java-Buch: Objektorientierte Programmierung in Java von Alexander 
Niemann sind die UML-Sachen auch ganz gut erklärt - auf so 75 Seiten - 
also von der Memorierfähigkeit her nicht mal so gerade eben ;)

von Einer K. (Gast)


Lesenswert?

Dave S. schrieb:
> Mit den Anleitungen in Englisch komme ich nicht richtig in die Materie.

Versuche mal dieses Buch http://www.cppbuch.de/

Gibts auch etwas preiswerter in der C++17 Version
https://www.terrashop.de/Buch/Der-C-Programmierer-Ulrich-Breymann-ISBN-3446448845/art/44644884/

------------------

Dave S. schrieb:
> beschäftige mich auch gerade mit C++, habe aber massive Schwierigkeiten
> mit den "Klassen" gibt es vielleicht hier jemanden, welcher mir die
> Klasse auf simpelste erklären kann?

C++ ist auch "nur" eine Sprache.
Es hat nur wenige Schlüsselworte, also recht leicht auswendig zu lernen!
Reine Fleißarbeit.

OOP, ist dagegen eine andere Art zu denken.
Die Prozeduraldenke steht der OOPdenke im Wege rum.
Diese beiden Paradigmen sind beileibe nicht die einzigen, welche mit/in 
C++ umsetzbar sind.


Die (Lern)Arbeit ist also nicht die Sprache selber, sie ist nur 
Werkzeug.
Es ist die Denke, welche die Positionen und ihre Richtung mehrfach 
ändern können muss.


> Vergleiche
Ein Vergleich passt nie!
Sonst wäre es ja kein Vergleich, sondern eine Beschreibung, o.ä.
Ein Vergleich darf/muss hinken.


> Klasse auf simpelste erklären kann?
Die naive Beschreibung:
Eigentlich ist es nur die Verheiratung von Code und Daten zu einer 
Einheit.
Frei nach dem Mantra:
> Fasse zusammen, was zusammen gehört!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.