{"id":2759,"date":"2025-12-04T08:00:00","date_gmt":"2025-12-04T07:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=2759"},"modified":"2025-11-06T08:15:01","modified_gmt":"2025-11-06T07:15:01","slug":"c-und-klassen","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2025\/12\/04\/c-und-klassen\/","title":{"rendered":"C++ und Klassen"},"content":{"rendered":"\n<p><br>Die Objekorientierung mit Klassen wird nun in diesem Artikel fortgesetzt\u2026<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><br><strong>Objektorientierung in C++ mit Klassen:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nclass vektor\n{\npublic:\n\nint x;\nint y;\n\nvoid addieren(vektor v)\n{\nx += v.x;\ny += v.y;\n}\n\n};\n\nint main()\n{\nvektor v1, v2;\n\nv1.x = 10;\nv1.y = 25;\n\nv2.x = 10;\nv2.y = -20;\n\nv1.addieren(v2);\n\ncout &lt;&lt; \"Vektor v1 = \"\n&lt;&lt; \"(\" &lt;&lt; v1.x &lt;&lt; \",\" &lt;&lt; v1.y &lt;&lt; \")\"\n&lt;&lt; endl;\n\nreturn 0;\n}<\/code><\/pre>\n\n\n\n<p>Der Code definiert eine einfache Klasse `vektor` in C++ und verwendet sie, um zwei Vektoren zu erstellen und ihre Summe auszurechnen.<\/p>\n\n\n\n<p>Hier ist ein detaillierter \u00dcberblick:<\/p>\n\n\n\n<p>1. Die ersten drei Zeilen importieren die Bibliothek `&lt;iostream&gt;` f\u00fcr den Zugriff auf die Standard-Eingabe\/ausgabe (`std::cout`) und deklarieren, dass der Namespace `std` verwendet werden soll.<\/p>\n\n\n\n<p>2. Die Klasse `vektor` wird definiert, die zwei private Membervariablen `x` und `y` hat, um den x- und y-Koordinaten eines Vektors zu repr\u00e4sentieren.<\/p>\n\n\n\n<p>3. Die Methode `addieren(vektor v)` wird definiert, die einen anderen `vektor` als Parameter annimmt und die Werte von `v.x` und `v.y` addiert an die eigenen Membervariablen `x` und `y`. Dies entspricht der Addition zweier Vektoren.<\/p>\n\n\n\n<p>4. In der Hauptfunktion `main()` werden zwei Instanzen der Klasse `vektor`, `v1` und `v2`, erstellt.<\/p>\n\n\n\n<p>5. Die Werte von `v1.x` und `v1.y` werden auf 10 und 25 gesetzt, w\u00e4hrend die Werte von `v2.x` und `v2.y` auf 10 und -20 gesetzt werden.<\/p>\n\n\n\n<p>6. Die Methode `addieren(vektor v)` wird aufgerufen, um den Vektor `v1` mit dem Vektor `v2` zu addieren.<\/p>\n\n\n\n<p>7. Schlie\u00dflich wird die Summe des resultierenden Vektors mittels `cout` ausgegeben.<\/p>\n\n\n\n<p><strong>Objektorientierung und Klassen:<\/strong><\/p>\n\n\n\n<p>Objektorientierung ist ein Konzept in der Programmierung, das es erm\u00f6glicht, komplexe Systeme und Programme zu modellieren. Die Grundidee besteht darin, dass man realen Welt-Ph\u00e4nomenen wie Objekten und Verhaltensweisen nachempfiehlt.<\/p>\n\n\n\n<p>Ein Klassendiagramm (auch &#8222;Klasse&#8220; genannt) ist ein Konzept in der Objektorientierung, das eine Menge von Eigenschaften und Methoden beschreibt, die einem bestimmten Typ von Dingen zugeordnet sind.<\/p>\n\n\n\n<p>Ein Klassendiagramm besteht aus:<\/p>\n\n\n\n<p>Attributen (Eigenschaften):<\/p>\n\n\n\n<p>Diese sind Werte oder Variablen, die ein Objekt besitzt.<\/p>\n\n\n\n<p>Methoden:<\/p>\n\n\n\n<p>Diese sind Funktionen, die ein Objekt ausf\u00fchren kann. Methoden k\u00f6nnen Daten verarbeiten und Aktionen durchf\u00fchren.<\/p>\n\n\n\n<p>Jedes Klassendiagramm hat eine spezifische Identit\u00e4t (Name) und kann Erben von anderen Klassen haben, was bedeutet, dass es bestimmte Eigenschaften oder Methoden von diesen \u00fcbernehmen kann.<\/p>\n\n\n\n<p>Insgesamt erm\u00f6glicht die Objektorientierung, Programme zu erstellen, die realistischere Modelle der Welt abbilden und flexibler sind.<\/p>\n\n\n\n<p>Nachfolgend nochmal der Code ohne globale Deklaration des Namensraums:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream>\n\nclass vektor\n{\npublic:\n\nint x;\nint y;\n\nvoid addieren(vektor v)\n{\nx += v.x;\ny += v.y;\n}\n\n};\n\nint main()\n{\nvektor v1, v2;\n\nv1.x = 10;\nv1.y = 25;\n\nv2.x = 10;\nv2.y = -20;\n\nv1.addieren(v2);\n\nstd::cout &lt;&lt; \"Vektor v1 = \"\n&lt;&lt; \"(\" &lt;&lt; v1.x &lt;&lt; \",\" &lt;&lt; v1.y &lt;&lt; \")\"\n&lt;&lt; std::endl;\n\nreturn 0;\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Objekorientierung mit Klassen wird nun in diesem Artikel fortgesetzt\u2026<\/p>\n","protected":false},"author":1,"featured_media":543,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[32],"class_list":["post-2759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding-club","tag-coding-club-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/2759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=2759"}],"version-history":[{"count":2,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/2759\/revisions"}],"predecessor-version":[{"id":2916,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/2759\/revisions\/2916"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/543"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=2759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=2759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=2759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}