C++ für Anfänger | Primorous Arts | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung

      2:45

    • 2.

      Kapitel 1 (Setup): Visual Studio installieren

      4:48

    • 3.

      Kapitel 1 (Setup): Alle auf eine Seite bringen

      3:19

    • 4.

      Kapitel 2 (Hello World): Den Code erklären

      12:26

    • 5.

      Kapitel 2 (Hallo Welt): Weißraum

      2:29

    • 6.

      Kapitel 2 (Hello World): Auf Konsole schreiben

      8:12

    • 7.

      Kapitel 2 (Hallo Welt): Kommentare

      3:45

    • 8.

      Kapitel 3 (Variablen): Einführung in Variablen

      6:24

    • 9.

      Kapitel 3 (Variablen): Ganze Zahlen

      7:42

    • 10.

      Kapitel 3 (Variablen): Gleitpunkte

      6:40

    • 11.

      Kapitel 3 (Variablen): Booleane

      6:24

    • 12.

      Kapitel 3 (Variablen): Chars

      4:14

    • 13.

      Kapitel 3 (Variablen): Strings

      8:39

    • 14.

      Kapitel 3 (Variablen): Konstanten

      4:55

    • 15.

      Kapitel 4 (Benutzereingaben): Cin-Benutzereingaben

      9:32

    • 16.

      Kapitel 4 (Benutzereingabe): Getchar und Getline-Funktionen

      6:25

    • 17.

      Kapitel 4 (Benutzereingabe): String zu Int

      6:09

    • 18.

      Kapitel 5 (Operatoren): Grundlagen der Arithmetik

      5:48

    • 19.

      Kapitel 5 (Operatoren): Inkrement und Dekrement

      7:28

    • 20.

      Kapitel 5 (Operatoren): Modulus

      1:55

    • 21.

      Kapitel 5 (Operatoren): Zuweisung

      2:18

    • 22.

      Kapitel 5 (Operatoren): Verkettung

      4:15

    • 23.

      Kapitel 5 (Operatoren): Casting und Trunkieren

      9:02

    • 24.

      Kapitel 6 (Konditionen): Umfang

      4:01

    • 25.

      Kapitel 6 (Konditionen): Einführung in die Konditionen

      1:27

    • 26.

      Kapitel 6 (Konditionen): Relationale und Gleichheitsoperatoren

      3:02

    • 27.

      Kapitel 6 (Konditionen): Logische Operatoren

      2:16

    • 28.

      Kapitel 6 (Konditionen): Wenn Statements

      6:36

    • 29.

      Kapitel 6 (Konditionen): Verschachtelung von Statements

      6:17

    • 30.

      Kapitel 6 (Konditionen): If-Else-Statements

      3:07

    • 31.

      Kapitel 6 (Konditionen): Else-If-Statements

      7:10

    • 32.

      Kapitel 6 (Konditionen): Switch-Statements

      10:44

    • 33.

      Kapitel 6 (Konditionen): Ternärer Operator

      9:42

    • 34.

      Kapitel 7 (Loops): Einführung in Loops

      1:05

    • 35.

      Kapitel 7 (Loops): While Loops

      7:29

    • 36.

      Kapitel 7 (Loops): Whirle-Loops machen

      3:13

    • 37.

      Kapitel 7 (Loops): Für Loops

      7:53

    • 38.

      Kapitel 7 (Loops): Verschachtelung von Loops

      3:39

    • 39.

      Kapitel 7 (Loops): Break-Statements

      8:49

    • 40.

      Kapitel 7 (Loops): Statements fortsetzen

      5:40

    • 41.

      Kapitel 7 (Loops): Benutzereingaben validieren

      14:26

    • 42.

      Kapitel 7 (Schleifen): Scope-Resolution Operator

      2:40

    • 43.

      Kapitel 8 (Zufallszahlen): Einführung in Zufallszahlen

      3:53

    • 44.

      Kapitel 8 (Zufallszahlen): Zufallszahlen generieren

      8:19

    • 45.

      Kapitel 9 (Container): Einführung in Container

      1:27

    • 46.

      Kapitel 9 (Container): Arrays

      7:52

    • 47.

      Kapitel 9 (Container): Mehrdimensionale Arrays

      10:07

    • 48.

      Kapitel 9 (Behälter): Vektoren

      11:25

    • 49.

      Kapitel 9 (Container): Warteschlangen

      7:13

    • 50.

      Kapitel 9 (Behälter): Stapel

      4:37

    • 51.

      Kapitel 10 (Foreach Loops): Einführung in Foreach Loops

      1:44

    • 52.

      Kapitel 10 (Foreach Loops): Foreach Loops

      14:08

    • 53.

      Kapitel 10 (Foreach Loops): Auto-Keyword

      8:07

    • 54.

      Kapitel 10 (Foreach Loops): Karten

      12:12

    • 55.

      Kapitel 10 (Foreach Loops): Iteratoren

      11:07

    • 56.

      Kapitel 11 (Enums): Einführung in Enums

      3:12

    • 57.

      Kapitel 11 (Enums): Ein Enum erstellen

      5:11

    • 58.

      Kapitel 11 (Enums): Enums verwenden

      10:59

    • 59.

      Kapitel 11 (Enums): Eums vs. Enum-Kurse

      4:04

    • 60.

      Kapitel 12 (Funktionen): Einführung in die Funktionen

      2:39

    • 61.

      Kapitel 12 (Funktionen): Erstellen einer Funktion

      6:46

    • 62.

      Kapitel 12 (Funktionen): Funktionsprototypen

      2:58

    • 63.

      Kapitel 12 (Funktionen): Return-Typen

      7:49

    • 64.

      Kapitel 12 (Funktionen): Parameter und Argumente

      6:45

    • 65.

      Kapitel 12 (Funktionen): Optionale Argumente

      5:58

    • 66.

      Kapitel 12 (Funktionen): Überladene Funktionen

      4:38

    • 67.

      Kapitel 12 (Funktionen): Rekursion

      7:32

    • 68.

      Kapitel 12 (Funktionen): Arrays als Parameter

      8:17

    • 69.

      Kapitel 13 (Referenzen): Einführung in die Referenzen

      1:28

    • 70.

      Kapitel 13 (Referenzen): Eine Referenz erstellen

      3:32

    • 71.

      Kapitel 13 (Referenzen): Referenzen und Forach-Loops

      4:01

    • 72.

      Kapitel 13 (Referenzen): Referenzen als Parameter

      4:17

    • 73.

      Kapitel 13 (Referenzen): Referenzen als Rückgabetypen

      7:31

    • 74.

      Kapitel 13 (Referenzen): Speicheradressen

      4:20

    • 75.

      Kapitel 14 (Zeiger): Einführung in die Zeiger

      1:14

    • 76.

      Kapitel 14 (Zeiger): Einen Zeiger erstellen

      9:45

    • 77.

      Kapitel 14 (Zeiger): NULL-Zeiger

      3:52

    • 78.

      Kapitel 14 (Zeiger): Zeiger und Funktionen

      6:20

    • 79.

      Kapitel 14 (Zeiger): Zeiger und Arrays

      10:44

    • 80.

      Kapitel 14 (Zeiger): Zeiger vs. Referenzen

      2:56

    • 81.

      Kapitel 15 (Kurse): Einführung in OOP

      4:03

    • 82.

      Kapitel 15 (Kurse): Einen Kurs erstellen

      5:59

    • 83.

      Kapitel 15 (Kurse): Kursobjekte

      1:59

    • 84.

      Kapitel 15 (Kurse): Zugriffsspezifikatoren

      4:32

    • 85.

      Kapitel 15 (Kurse): Kursfunktionen

      6:12

    • 86.

      Kapitel 15 (Kurse): Kurskonstruktoren

      10:32

    • 87.

      Kapitel 15 (Kurse): Initialisierer auflisten

      5:50

    • 88.

      Kapitel 15 (Kurse): Verkapselung, Abstraktion und Eigenschaften

      16:11

    • 89.

      Kapitel 15 (Kurse): Erbschaft

      29:24

    • 90.

      Kapitel 15 (Kurse): Kurseinblicke

      27:44

    • 91.

      Kapitel 15 (Kurse): Statische Schlüsselwörter

      18:07

    • 92.

      Kapitel 15 (Kurse): Kurs vs. Struct

      3:06

    • 93.

      Kapitel 15 (Kurse): Erstellung von Basiskreisen verhindern

      2:01

    • 94.

      Kapitel 15 (Kurse): Mitgliedszugangsoperatoren

      2:57

    • 95.

      Kapitel 15 (Kurse): Polymorphismus

      19:00

    • 96.

      Kapitel 15 (Kurse): Vier Hauptprinzipien von OOP

      5:01

    • 97.

      Kapitel 15 (Kurse): Freundfunktionen und Kurse

      8:06

    • 98.

      Kapitel 15 (Kurse): Namensräume

      8:00

    • 99.

      Kapitel 15 (Kurse): Arrays von Objekten

      6:56

    • 100.

      Kapitel 15 (Kurse): Alt-Kurse erstellen

      11:50

    • 101.

      Wir gratulieren!

      2:06

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

345

Teilnehmer:innen

--

Projekt

Über diesen Kurs

Beschreibung

In diesem umfassenden C++ für Anfänger Kurs bringe ich dich von vor nicht Programmierkenntnissen zum selbstbewussten Schreiben von C++ Code mit, während wir die Grundlagen beherrschen und sogar fortgeschrittene Themen wie Vererbung, Polymorphismus und Schnittstellen angehen. Mit Schritt-für-Schritt-Anleitungen, praktischen Herausforderungen und Klärungen, nicht nur, was zu tun ist, sondern auch, warum du in kürzester Zeit reale Projekte erstellen kannst!

Gründe für diesen Kurs:

  • Vielseitigkeit: C++ wird in der Spieleentwicklung (Unreal), mobilen Apps, Software-Engineering und vielen mehr verwendet.
  • Große Nachfrage nach C++-Entwicklern: Mit einem durchschnittlichen Gehalt von $ 100.000 für erfahrene Programmierer ist C++ ein großartiger Ausgangspunkt für eine lukrative Tech-Karriere.
  • Learning by Doing: Sie sammeln praktische Erfahrungen mit Coding-Herausforderungen ab Kapitel 3, um Ihnen zu helfen, das Gelernte anzuwenden und Ihr Verständnis der Konzepte im Kurs gelehrt zu festigen.

Für wen dieser Kurs ist

  • Aufstrebende Programmierer ohne Vorkenntnisse.
  • Jeder, der seine C++-Fähigkeiten auf die nächste Stufe bringen möchte.
  • Programmierer, die eine Auffrischung benötigen oder einfach eine neue Sprache lernen möchten.

Materialien/Ressourcen erforderlich

  • Ein Computer (Windows, macOS oder Linux), in der Lage ist, Visual Studio oder eine beliebige C++ IDE Ihrer Wahl auszuführen.
  • Es sind keine Vorkenntnisse in der Programmierung erforderlich.
  • Die gesamte in dem Kurs verwendete Software ist kostenlos.
  • Ich würde auch eine physische Tastatur empfehlen.

Triff deine:n Kursleiter:in

Teacher Profile Image

Primorous Arts

Course Instructor

Kursleiter:in
Level: All Levels

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung: Willkommen zum Primoris Arts C plus Plus-Kurs für Anfänger Wenn Sie hier sind, sind Sie wahrscheinlich daran interessiert, Programmieren zu lernen, wissen aber nicht, wo Sie anfangen sollen Ich verstehe es. Ich war auch dort. Als ich das erste Mal versuchte, Programmieren zu lernen, verbrachte ich mehr Zeit damit, nach einem kompletten Kurs zu suchen, Inhalten zu dem, was ich bereits gelernt hatte, und Antworten auf grundlegende Fragen zu suchen, als nach dem eigentlichen Lernen. Außerdem hatte ich das Gefühl, dass mir einfach beigebracht wurde , wie man alles durchzieht, obwohl ich eigentlich wissen musste und wollte , wie die Dinge funktionieren und wann ich sie einsetzen sollte, damit ich mit meinen eigenen Projekten beginnen konnte meinen eigenen Projekten beginnen Genau aus diesem Grund haben wir diesen Kurs ins Leben gerufen, damit Sie sich auf Ihrem Weg zum Programmierer nicht diesen Kurs ins Leben gerufen, damit Sie sich auf Ihrem Weg zum Programmierer nicht mit denselben Problemen auseinandersetzen müssen Alles, was Sie für den Einstieg benötigen, hier an einem Ort, von Themen für Anfänger bis hin zu fortgeschrittenen Themen. Echter Support steht Ihnen zur Verfügung, wenn Sie ihn am dringendsten benötigen Warum sollten Sie also speziell C Plus Plus lernen? C Plus Plus ist eine leistungsstarke vielseitige Sprache, die in der Spieleentwicklung, in Webbrowsern, Datenbanken und mehr verwendet wird. Damit verfügen Sie über die Grundlage, um mit der Erstellung Ihrer eigenen Projekte in einem Umfang zu beginnen , der in der ständig wachsenden Technologiebranche sehr geschätzt wird . Und obwohl C plus plus aufgrund der C-Sprache als schwieriger zu erlernende Sprache angesehen wird , kann es ein unverzichtbares Werkzeug für diejenigen sein, die das Programmieren in Bereichen beherrschen wollen , in denen Speicher und Geschwindigkeit von großer Bedeutung sind, und es bietet eine solide Grundlage, die das Erlernen anderer C-basierter Sprachen wie C Sharp oder Java erheblich erleichtert. Vor diesem Hintergrund wird dieser Kurs mit den absoluten Grundlagen beginnen. Wenn Sie noch nie eine einzige Codezeile geschrieben haben, Sie sich keine Sorgen, es wird Ihnen gut gehen. Wir werden uns mit den Grundlagen wie Variablen befassen und uns schrittweise zu fortgeschritteneren Themen wie Klassen oder Objekten, Abstraktion, Kapselung, Polymorphie, Vererbung und mehr vorarbeiten uns schrittweise zu fortgeschritteneren Themen wie Klassen oder Objekten, Abstraktion, Kapselung, Polymorphie, Vererbung Polymorphie Ab Kapitel drei erhalten Sie die Möglichkeit, praktische Programmieraufgaben zu lösen, die praktische Programmieraufgaben speziell darauf ausgelegt sind, Ihr Verständnis der im Kurs vermittelten Konzepte zu festigen Ihr Verständnis der im Kurs vermittelten Konzepte zu festigen speziell darauf ausgelegt sind, Ihr Verständnis der im Kurs vermittelten Konzepte zu festigen. Warum sollten Sie sich also für diesen Kurs entscheiden , um C plus Plus zu lernen Denn anstatt Ihnen einfach zu zeigen , wie man die Bewegungen durchgeht und Sie am Ende mit einem Projekt enden lassen, von dem Sie keine Ahnung haben, wie Sie es selbst neu erstellen können, werde ich Ihnen nicht nur beibringen, wie Sie den Code schreiben, sondern vor allem, wann Sie ihn verwenden und warum Indem Sie Ihnen beibringen, wie ein Programmierer zu denken, erhalten Sie tatsächlich ein viel tieferes Verständnis jedes vermittelte Konzept, sodass Sie am Ende des Kurses bereit sind, Ihre eigenen Projekte selbstbewusst anzugehen . Und um die Sache noch besser zu machen, ist alles, was wir in diesem Kurs verwenden, kostenlos. Das heißt, es gibt keine kostenlosen Testversionen oder versteckten Gebühren, über die Sie sich Gedanken machen müssen Nun, für wen ist dieser Kurs gedacht? Dieser Kurs ist perfekt für absolute Anfänger, die loslegen möchten, für erfahrene Programmierer, die ihre Fähigkeiten auffrischen oder erweitern möchten , und für alle, die dazwischen liegen Und denken Sie daran, es gibt keine Eile. Fühlen Sie sich frei, in Ihrem eigenen Tempo zu gehen und bei Bedarf zurückzukommen und bestimmte Lektionen erneut zu besuchen Hier bei Primoris Arts setzen wir uns dafür ein, Ihnen bei jedem Schritt zum Erfolg zu verhelfen jedem Schritt zum Erfolg Wenn Sie also bereit sind, Ihre Coding-Reise zu beginnen, dann gibt es keinen besseren Zeitpunkt als jetzt Wir laden Sie ein, uns heute im nächsten Video zu begleiten, während wir Schritt für Schritt mit klaren, präzisen und leicht verständlichen Lektionen in die Programmierung eintauchen präzisen und leicht verständlichen Lektionen Danke fürs Zuschauen und wir sehen uns im nächsten. 2. Kapitel 1 (Setup): Installiere Visual Studio: Willkommen zur allerersten Folge des Kurses C plus plus für Anfänger. In dieser Folge zeige ich Ihnen, wie Sie Visual Studio installieren, ein völlig kostenloses Programm , mit dem wir unseren gesamten Code schreiben und ausführen. Wenn Sie jetzt ein Mac OS oder Linux verwenden, müssen Sie leider ein anderes Programm herunterladen, mit dem Sie C plus Code schreiben und ausführen können. Aber keine Sorge, sobald Sie das getan haben, können Sie es gut verfolgen. Und es gibt mehrere kostenlose Programme sowie zahlreiche Online-Tutorials zu den ersten Schritten. der nächsten Folge werde ich sicherstellen, dass alle auf derselben Seite sind, damit Sie unabhängig davon, welches Programm Sie verwenden, mitverfolgen können. Ganz schnell hier und nur ein paar Beispiele für einige Programme, die ich empfehlen würde. Egal, ob Sie macOS oder Linux verwenden. Sie können Visual Studio Code verwenden. Ein anderer, den Sie verwenden können, sind Codeblöcke. Und schließlich können Sie speziell für MacOS-Benutzer die integrierte Xcode-Software verwenden. Wie auch immer, für alle unter Windows ist Visual Studio das beliebteste Programm, ist Visual Studio das beliebteste Programm das ich empfehlen würde, da es sehr einfach einzurichten und loszulegen ist . Das erste, was Sie tun möchten, ist Visual Studio.Microsoft.com aufzurufen. Gehen Sie dann oben zu Downloads. Dann sehen Sie Ihr Visual Studio mit C plus plus. Gehen Sie weiter und gehen Sie zum Download-Dropdown-Feld und gehen Sie zu der Stelle, an der Community Free steht. Stellen Sie sicher, dass Sie nicht auf die Schaltfläche mit der Aufschrift „Kostenlose Testversion“ klicken. Sie nach dem Herunterladen Öffnen Sie nach dem Herunterladen die Visual Studio-Setup-Anwendung und stellen Sie sicher, dass Sie alle Aufforderungen akzeptieren , die möglicherweise auf Ihrem Bildschirm angezeigt werden. Warten Sie dann, bis das Herunterladen und Installieren abgeschlossen ist. Nach Abschluss der Installation können Sie jetzt ein kostenloses Konto erstellen, wenn Sie möchten. Ich glaube, Sie werden irgendwann ein Konto erstellen müssen, obwohl das Programm völlig kostenlos ist. Zu diesem Zeitpunkt werde ich jedoch einfach weitermachen und ohne Konto weitermachen. Damit auf diese Weise keine meiner vorherigen Kontoeinstellungen da ist und wir alles zusammen mit einem frischen Totenkopf durchgehen können . Also werde ich weitermachen und auf „Nicht jetzt“ klicken, vielleicht später. Jetzt kann ich nur empfehlen, ein dunkles Thema zu verwenden. Nicht nur ein Visual Studio, sondern jedes Programm, mit dem Sie in Zukunft Code schreiben, da es definitiv viel besser für Ihre Augen sein wird. Was die Entwicklungseinstellungen angeht, werde ich einfach weitermachen und sie allgemein belassen. Dann machen wir weiter und klicken auf Visual Studio starten. Ordnung, sobald es geöffnet ist, werden wir weitermachen und ein neues Projekt erstellen. Und was Sie hier oben suchen werden, ist C plus, plus. Eine andere Sache, die Sie tun können, ist einfach zu gehen, wo alle Sprachen stehen, und auf C plus plus klicken. Und Sie sollten eine für die Konsolenanwendung sehen. Also klicke ich darauf und dann auf Weiter. Dann geben Sie Ihrem Projekt einen Namen. Jetzt können Sie jeden Namen nennen, den Sie wollen, aber ich würde empfehlen, sich an eine Pascal Case Namenskonvention zu halten . Das heißt, Sie werden keine Leerzeichen haben. Sie beginnen mit einem Großbuchstaben und jedes weitere Wort beginnt auch mit einem Großbuchstaben. Also mach weiter und gib ihm schnell einen Namen. Jetzt werden Sie feststellen, dass Ihr Lösungsname hier unten genau Ihrem Projektnamen übereinstimmt. Für diesen Kurs. Wir machen weiter und lassen es so. Aber wissen Sie nur, dass Ihre Lösung und Ihr Projektname in Zukunft Ihre Lösung und Ihr Projektname nicht identisch sein müssen. Sie können auch einen beliebigen Standort für dieses Projekt auswählen . Stellen Sie dann sicher, dass dieses Feld hier unten steht, in dem steht Lösung im Projekt im selben Verzeichnis abspielen. Wie unkontrolliert. Da dies im Allgemeinen eine gute Praxis ist. Dann mach weiter und klicke auf Erstellen. Ordnung, dann kannst du weitermachen und das beenden. Und da hast du es. Wir haben jetzt Visual Studio installiert und unser allererstes C Plus Plus-Projekt erstellt. Ich möchte, dass Sie oben in die Datei gehen und auf Alle speichern klicken. Stellen Sie sicher, dass Sie dies am Ende jedes einzelnen Videos tun , sofern nicht anders angegeben. Jetzt weiß ich, dass nicht alle von Ihnen Visual Studio verwenden. Im nächsten Video werde ich sicherstellen, dass Sie alle auf genau derselben Seite sind wie ich und bereit sind, gemeinsam zu lernen, wie man Code liest und schreibt. Und keine Sorge, das ist das einzige Programm, das ich während dieses Kurses installieren werde . Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 3. Kapitel 1 (Setup): Hol dir alle auf der gleichen Seite: In diesem Video werde ich sicherstellen, dass Sie alle auf genau derselben Seite sind wie ich, damit Sie den Rest des Kurses problemlos verfolgen können . Und denk dran, wenn du überhaupt Hilfe brauchst. Bitte lassen Sie es mich unten im Diskussionsbereich wissen unten im Diskussionsbereich und ich helfe Ihnen gerne weiter. Wie dem auch sei, lass uns anfangen. Jetzt ganz schnell, für diejenigen Ihnen, die Visual Studio verwenden, gehen wir oben zu den Tools und gehen zu Optionen. Und klicken Sie unter dem Bugging auf Allgemein. Scrollen Sie dann nach unten. Und Sie sollten ein Kontrollkästchen sehen, das besagt, dass die Konsole beim Debuggen von Stempeln automatisch geschlossen wird. Stellen Sie sicher, dass dies aktiviert ist. Dann mach weiter und klicke auf Okay. Unabhängig davon, welches Programm Sie verwenden, wenn Sie andere Texte außerhalb dieses Hashtags haben, fügen Sie die iostream-Zeile in diese geschlossene geschweifte Klammer ein. Also alles genau hier, mach einfach weiter und werde alles andere los. So. Okay, das sollte das einzige sein , was auf deinem Bildschirm übrig bleibt. Wenn dies nicht auf Ihrem Bildschirm angezeigt wird, kopieren Sie es genau. Sobald Ihr Code wie meiner aussieht, werden wir tatsächlich ein paar zusätzliche Codezeilen hinzufügen. Keine Sorge, du musst nichts davon verstehen. Wir werden es im nächsten Video komplett durchgehen. Aber im Moment möchte ich nur sicherstellen , dass der Code aller funktioniert. Also gleich nach dieser HelloWorld-Zeile hier, gleich nach dem Semikolon, werden wir weitermachen und auf Enter klicken, um eine neue Zeile zu erstellen. Und wir geben std, Doppelpunkt, Doppelpunkt, C-Punkt ein, bekommen offene Klammern, schließen Klammern, Semikolon. Dann drücken wir erneut Enter. Sie schaffen eine neue Linie. Ich tippe return. Dann die Zahl 0 gefolgt von einem weiteren Semikolon. Also sollte jeder Code genau so aussehen. Unabhängig davon, welches Programm Sie verwenden, sollten Sie jetzt in der Lage sein, den Code so auszuführen, wie er ist. Für diejenigen unter Ihnen, die Visual Studio verwenden, können Sie einfach oben auf diese Wiedergabetaste klicken, oder das Hockey ist F5. Für diejenigen unter Ihnen, die ein anderes Programm verwenden, müssen Sie herausfinden, wie Sie Ihren Code ausführen. Und wenn es dafür einen Hotkey gibt, würde ich auf jeden Fall empfehlen, sich daran zu erinnern , da wir es in diesem Kurs häufig tun werden. Wie auch immer, sobald dein Code ausgeführt wird, sollte ich einfach Hallo Welt sagen. Und wenn Sie die Eingabetaste drücken, sollte ich den Code verlassen. Einfach so. Jetzt erhalten Sie möglicherweise kein Konsolenfenster, das angezeigt wird , wenn Ihr Code ausgeführt wird. Und das ist völlig in Ordnung. Solange dein Code läuft und Hallo Welt steht, kannst du loslegen. Was den Rest von Ihnen betrifft, das erste, was ich überprüfen möchte, Ihr Code sieht genauso aus wie meiner. Wenn Sie dann immer noch Probleme haben, teilen Sie mir dies bitte unten im Diskussionsbereich mit, und ich helfe Ihnen gerne weiter. Jedenfalls. Das war's für dieses Video. Im nächsten Video werden wir uns ansehen, was all dieser Code tatsächlich bedeutet. Also danke fürs Zuschauen und wir sehen uns im nächsten. 4. 3: In diesem Video gehen wir kurz auf den gesamten Code ein, den wir hier haben. Keine Sorge, ich erwarte nicht, dass Sie sich an alles erinnern, da wir alles später im Kurs genauer durchgehen werden . Ich möchte Ihnen nur eine kurze Einführung geben , was vor sich geht. Und am Ende des Videos gebe ich Ihnen eine kurze Zusammenfassung der wenigen wichtigen Punkte, an die Sie sich weiteren Verlauf erinnern sollten. Am Anfang haben wir also diese include-Anweisung, die dem Compiler im Grunde mitteilt , dass wir den Code aus der Header-Datei namens iostream nehmen und in unser Programm einfügen wollen . Der Compiler als das, was hier alles in Binärdateien oder Einsen und Nullen übersetzt Binärdateien oder Einsen und Nullen , damit unser Computer es tatsächlich verstehen kann. Und eine Header-Datei ist im Grunde nur eine Sammlung von Code, für die Verwendung durch andere Programme erstellt wurde. Als nächstes haben wir unsere Hauptfunktion. Die Hauptfunktion ist wichtig, da jedes C plus Programm eine Hauptfunktion hat, da hier Ihr Programm beginnt und endet. Und alles, was Teil der Hauptfunktion ist , muss zwischen diesen offenen und geschlossenen geschweiften Klammern platziert werden. Und hier wird ein Großteil unseres Codes geschrieben. Als nächstes haben wir diese Codezeile , die Hello World ausdruckt. Und lasst uns weitermachen und das schnell aufschlüsseln. Also haben wir zuerst std geschrieben, was ein Namespace ist, eine Definition für das Objekt C out enthält. Und wir werden in einer Minute zu den Namespaces zurückkehren. Sehen Sie es jetzt als Objekt an, das zum Anzeigen von Text verwendet wird. Und darauf folgt immer der Einfügeoperator , der zwei weniger als Symbole ist. Und was sich rechts vom Einfügeoperator befindet, ist das, was Sie eigentlich ausdrucken möchten. Wenn Sie Texte wörtlich drucken oder genau das ausdrucken möchten, was Sie eingeben. Sie müssen es wie folgt zwischen zwei doppelten Anführungszeichen setzen. Und diese ganze Zeile hier als Statement oder Anweisung für unser Programm. Und die meisten Aussagen enden wir mit einem Semikolon. Zusammenfassend sagen wir also, dass wir das Objekt C out verwenden wollen , um Hello World auszudrucken. Dann besagt diese Zeile, die wir im letzten Video hinzugefügt haben, im Grunde nur , dass wir Eingaben vom Benutzer erhalten möchten . Und der einzige Grund, warum wir das hier platzieren, ist, dass unser Programm nach dem Ausführen nicht sofort heruntergefahren wird. Wie üblich geht ein Programm, sobald es alle Codezeilen durchlaufen hat, davon aus, es alle Codezeilen durchlaufen hat, davon aus, dass es fertig ist, und wird automatisch geschlossen. Je nachdem, welches Programm Sie tatsächlich zum Schreiben von Code verwenden, bleibt Ihr Code möglicherweise mit oder ohne diese Zeile geöffnet. Aber für diejenigen unter Ihnen, die es brauchen, werde ich es zur Erinnerung hier auf dem Bildschirm belassen. Also nur um es dir schnell zu zeigen, wenn ich diese Codezeile loswerde und versuche, mein Programm auszuführen, würde es sofort ausgeführt und dann sofort heruntergefahren werden. Wenn ich das also zurücklege und meinen Code erneut ausführe, muss ich jetzt die Eingabetaste drücken, um es zu schließen. Jetzt kann ich tatsächlich mehrere Buchstaben und Zahlen eingeben . Aber sobald ich die Eingabetaste drücke, wird es sofort heruntergefahren. Und das liegt daran, dass diese Get-Methode hier im Wesentlichen wartet. Sie nehmen Benutzereingaben entgegen und gehen davon aus, dass Sie fertig sind, wenn Sie die Eingabetaste drücken. Und schließlich haben wir hier unten diese Rückgabeanweisung, die nur besagt, dass wir die ganze Zahl Null zurückgeben wollen . Und der Grund, warum wir Null zurückgeben, ist, dass unsere Hauptfunktion den Rückgabetyp einer Ganzzahl hat. Sobald der Code, der unsere Hauptfunktion aufruft , diese Null erhält. Und das ist Code, der erfolgreich ausgeführt wurde. Und etwas, das Sie hier sehen können, austauschbar mit der Null, ist Exit-Erfolg mit einem Unterstrich dazwischen und in Großbuchstaben. So. Das wird gut laufen. Wie in C plus, plus. Dies ist genau das Gleiche, als wenn Sie nur die tatsächlichen Zahlen Null eingeben. Und ich werde es aus Gründen der Klarheit tatsächlich so belassen. Für diejenigen unter Ihnen , die es brauchen. Abgesehen davon können Sie mit C Plus Plus diese Zeile einfach entfernen und es wird automatisch Null zurückgegeben. Aber wie gesagt, ich werde das aus Gründen der Klarheit hier belassen, da dies tatsächlich im Hintergrund passiert. Also ganz schnell, gehen wir zurück zum std-Namespace. Der Namespace ist im Grunde genau das. Es ist ein benannter Raum , in dem sich Code befindet. Und Sie können sich das irgendwie als Nachnamen einer Person vorstellen , z. B. wenn ich Ihnen gerade den Vornamen einer Person gegenüber erwähnt habe, wissen Sie vielleicht nicht, von wem ich gesprochen habe, wissen Sie vielleicht nicht, von wem ich gesprochen habe, aber wenn ich Ihnen ihren Nachnamen nennen würde, Als ich dann ihren Vornamen sagte, haben Sie keinen Kontext darüber, auf wen ich mich bezog. Genau. Das gleiche gilt für unseren Code hier. Wenn wir also sagen, dass sin Teil der Standardeinstellung ist, wurden Namespace und Nose als von kommend gesendet , nur für den Fall, dass es andere Objekte gibt , die ebenfalls denselben Namen haben. Und dieser Std-Namespace stammt aus dieser iostream-Header-Datei, die für die Standardeingabe und -ausgabe verwendet wird, weshalb Sie diese Header-Datei und viele C plus Programme sehen werden. Wir können also etwas tun, anstatt diesen Namespace vor allem zu setzen , was Teil dieses Namespaces ist , hier oben, direkt unter unserer include-Anweisung. Wir können sagen, Namespace zu verwenden. Std und dann ein Semikolon am Ende. Und jetzt weiß es automatisch , woher diese Objekte kommen. Und wir werden später im Kurs näher auf Objekte eingehen. Da C plus plus eine objektorientierte Programmiersprache ist. Jetzt, wo wir sagen, dass wir diesen Namespace verwenden und er weiß, woher diese Objekte kommen, können wir dieses Präfix hier einfach vollständig entfernen. Einfach so. Und wenn ich das Programm starte, sieht man, dass es einwandfrei läuft. Abgesehen davon lassen einige Leute diese jedoch aus Gründen der Klarheit gerne dort. Aber ich persönlich tippe lieber C out oder CN ein, da sie so häufig verwendet werden. Also werde ich weitermachen und es so entfernen und das Programm speichern. Und das werden wir in Zukunft verwenden. Also stellt sicher, dass ihr diese Codezeile hattet und ihr werdet alle verwickelt sein. Kehren wir abschließend zu diesem Hello World-Text zurück. Sie fragen sich vielleicht, was dieser Backslash n ist und warum er nicht angezeigt wurde, als wir unseren Code ausgeführt haben. Wie Sie sehen können, es beim Ausführen eines Codes heißt es beim Ausführen eines Codes Hallo Welt, Ausrufezeichen. Dann blinkt unser Cursor hier unten. Und das liegt daran, dass dieser Backslash n besagt, dass wir zu einer neuen Zeile gehen wollen. Also lass uns weitermachen und das schnell entfernen und unseren Code erneut ausführen. Und wie Sie sehen können, befindet sich unser Cursor jetzt am Ende der Zeile. Dieser Backslash n sagt also im Grunde nur, dass wir zu einer neuen Zeile gehen wollen. Was wäre, wenn Sie mehr Text in die neue Zeile schreiben möchten? Einige von Ihnen mögen instinktiv so vorgehen. Makerspace, hallo fing an und führe diesen Code aus. Sie werden jedoch feststellen , dass dieser Bereich tatsächlich als Leerzeichen in der neuen Zeile registriert ist . Wenn wir das nicht wollen, müssen wir das Leerzeichen von hier entfernen. Denn wie ich bereits sagte, wird alles zwischen diesen doppelten Anführungszeichen wörtlich oder genau ausgedruckt. Dieser Backslash ist jedoch eigentlich ein spezielles Escape-Zeichen , das das nächste Zeichen danach liest und etwas Bestimmtes damit macht. Und es gab eine ganze Liste von speziellen Escape-Sequenzen, die du benutzen kannst. Und lassen Sie uns nur ein paar als Beispiel durchgehen. Der erste ist der Backslash n , den Sie bereits beim Erstellen einer neuen Zeile gesehen haben. Sie können auch Backslash oder Backslash verwenden, um tatsächlich einen Backslash auszudrucken. So. Ein anderes wäre ein umgekehrter Schrägstrich. Zum tatsächlichen Ausdrucken eines Anführungszeichens. Anstatt das Ende unserer Zeit zu bedeuten. Ich führe einen Code aus. Sie können das doppelte Anführungszeichen genau dort sehen. Wie auch immer, lassen Sie uns weitermachen und das entfernen und einfach den Backslash n Hintergrund war wie so in sehr schnell, etwas, das Sie anstelle von Backslash n sehen können , ist das Folgende. Nach einem doppelten Anführungszeichen sehen Sie möglicherweise einen weiteren Einfügeoperator, gefolgt vom Wort end mit einem kleinen l, so. Und stellt dann sicher, dass das Semikolon immer noch am Ende steht. Wenn wir unseren Code ausführen. Dies wird auch auf eine neue Linie zurückgehen. Und L ist einfach die Abkürzung für N line. Und Sie können diese austauschbar verwenden da sie genau dasselbe tun, nur um sich daran zu erinnern, dass der Backslash und die Notwendigkeit in Ihre Zitate aufgenommen werden müssen. Und das Ende L muss nach einem anderen Einfügeoperator auf sich allein gestellt sein. Wie dem auch sei, ich werde weitermachen und das wieder so machen , wie es war. Jetzt ganz schnell. Etwas, das ich erwähnen möchte, ist, dass obwohl ich dies die Hauptfunktion nannte, Sie vielleicht Leute sagen hören Hauptmethode als Funktionsmethode oft synonym verwendet wird. Und Sie sind es vielleicht gewohnt, dass Leute Methode sagen, besonders wenn Sie aus einer anderen Programmiersprache kommen. Wie auch immer, lasst uns weitermachen und ganz kurz zusammenfassen , solange wir einen Bildschirm haben. Also zuerst haben wir diese include-Anweisung, die im Grunde besagt , dass wir Code aus der iostream-Header-Datei verwenden wollen . Dann sagen wir , dass wir den Namespace std verwenden werden , der unserem Programm mitteilt , dass dieses C-out- und gesendete Objekt aus dem Namespace std stammt. Und wie gesagt, man kann sich einen Namensraum im Grunde als den Nachnamen von jemandem vorstellen . Und im Grunde nur eine Möglichkeit anzugeben, woher etwas kommt oder worauf wir uns beziehen. Als wir Scalp sagten, wissen sie, dass wir c aus dem std-Namespace verwenden wollen . Ordnung, also fügen wir Code von iostream hinzu. Diese beiden Objekte , hier C out und C n, stammen vom Namen space std. Dann haben wir unsere Hauptfunktion oder eine Methode, die Teil des Programms Array C plus ist, da hier unser Programm beginnt und endet. Und hier drin haben wir nur ein paar Aussagen. Wir haben dieses erste, das CL-Objekt zum Drucken von Hello World. Wir haben diese sin.gov, die im Grunde darauf wartet, Benutzereingaben zu erhalten. Und dann haben wir einfach da, damit unser Programm nicht sofort geschlossen wird, bis wir die Enter-Taste drücken. Dann haben wir return exit success, was dasselbe ist wie die Aussage return zero, da unsere Hauptfunktion einen ganzzahligen Wert oder eine ganze Zahl zurückgeben muss . Und es gibt normalerweise Null zurück, wenn es erfolgreich war und funktioniert. Also das und das ist genau das Gleiche. Und wie gesagt, mit C plus plus können Sie das einfach entfernen und tippen. Ordnung, jedenfalls, das ist es für dieses Video. Stellt sicher, dass ihr seht, was ihr habt. Und keine Sorge, wenn Sie sich nicht an alles erinnern, worüber wir hier gesprochen haben. Das einzige, woran Sie sich in Zukunft wirklich erinnern sollen , da der R-Code innerhalb der Hauptfunktion stattfinden wird . Und dann hat jedes C plus Programm eine Hauptfunktion , denn hier beginnt und endet unser Programm. Und ab diesem Zeitpunkt werden wir jede Kleinigkeit Schritt für Schritt in ein eigenes Video aufteilen jede Kleinigkeit Schritt für Schritt in ein eigenes Video , damit Sie es einfach und wirklich verfolgen können verstehen Sie, was vor sich geht , damit Sie es in Ihren eigenen Programmen verwenden können. Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 5. Kapitel 2 (Hallo Welt): Weißer Raum: In diesem Video werden wir über Whitespace sprechen. Leerzeichen und C plus plus basieren auf den ersten beiden Zeichen, die für Formatierungszwecke verwendet werden , wie Leerzeichen, Tabulatoren in manchmal neuen Zeilen. Und der C plus Compiler oder das Ding , das all diesen Code nimmt und ihn in Binärdateien konvertiert , damit der Computer ihn verstehen kann , ignoriert im Allgemeinen Leerzeichen. Es gibt jedoch ein paar Ausnahmen , die wir in diesem Video durchgehen werden. Um Ihnen ein Beispiel für Leerzeichen zu geben, können Sie im Allgemeinen so viele neue Zeilen verwenden, so oft, so viele Leerzeichen, wie Sie möchten . Sogar zwischen den Dingen. Ihr Code läuft also einwandfrei. Okay? Im Grunde möchten Sie also Leerzeichen verwenden, um den Code für Sie so lesbar wie möglich zu machen . Und wenn Sie mit anderen zusammenarbeiten, sollten Sie es auch für sie so lesbar wie möglich machen . Wann wird Whitespace nicht ignoriert? Nun, wenn wir Anführungszeichen verwenden, um unserem Programm mitzuteilen , dass es ausdrucken soll, was genau zwischen ihnen liegt. Es wird davon ausgegangen, dass wir, wenn wir einen Raum einrichten, den wir platzieren wollen. Also als wir hier ein Leerzeichen zwischen Hallo und Welt gesetzt haben, aber auftauchten und unser Programm. Wie bei allen anderen Räumen , mit denen wir hier gespielt haben. Wie Sie hier sehen können. Das andere Mal haben wir einen Operator , der zwei Zeichen verwendet, wie bei unserem Einfügeoperator hier. Wenn Sie Leerzeichen dazwischen setzen würden , würde es nicht mehr verstehen, was das war. Und dann gibt es wirklich nur ein anderes Mal , dass der Compiler Leerzeichen nicht ignoriert. Und wenn Sie hier ein Schlüsselwort wie return haben, können Sie es nicht so trennen. Und da hast du es. Sie kennen jetzt Whitespace wie in der C plus plus Programmierung. Grundsätzlich können Sie so viele neue Zeilen, so viele Leerzeichen und so viele Tabs verwenden , wie Sie möchten, um Ihren Code so lesbar wie möglich zu machen. Mit Ausnahme der Tatsache, dass Keywords nicht getrennt werden können. Alle Bereiche, in denen Sie Ihrem Programm mitteilen , dass es genau das ausdrucken soll , was Sie ihm sagen. Und Sie können Operatoren, die zwei oder mehr Zeichen haben, nicht aufteilen . Jedenfalls. Danke fürs Zuschauen und wir sehen uns im nächsten. 6. Kapitel 2 (Hallo Welt): Schreiben auf die Konsole: In diesem Video gehen wir einfach zurück und gehen darüber nach , wie Texte auf die Konsole gedruckt werden. Also die Hauptmethode, die Sie vor der Konsole schützen, und C plus, wie bei einem C-Objekt, gefolgt vom Einfügeoperator. Denken Sie daran, dass Ihr Code dies aus irgendeinem Grund nicht akzeptiert, weil Sie den iostream einbeziehen müssen. Und Sie sollten Ihren Code jetzt lassen, da Sie den Namespace std verwenden. Andernfalls können Sie explizit sagen, dass es aus dem Namespace std stammt, indem Sie S, T, D Doppelpunkt, Doppelpunkt, gefolgt von C out eingeben. Aber im Moment werde ich einfach weitermachen und das entfernen. Da wir bereits angegeben haben, dass wir diesen Namespace hier verwenden. Und ich persönlich finde es viel einfacher, es zu lesen. Also werde ich das nur ein bisschen bereinigen, damit wir unseren gesamten Code genau hier kennen. Dann möchte ich, dass ihr mitmacht. Und wir werden im Grunde einfach diese Zeile entfernen und Texte von Grund auf neu auf die Konsole schreiben. Also gehen wir raus und werden das los. Und jedes Mal, wenn Sie Texte auf die Konsole schreiben möchten, sagen Sie C einfach in Kleinbuchstaben aus. Ja, die Großschreibung spielt beim Programmieren eine Rolle. Gefolgt vom Einfügeoperator. Also sagen wir C out space, der Einfügeoperator setzt ein anderes Leerzeichen ein. Und dann geben wir in Anführungszeichen ein, was wir sagen wollen. Ich könnte also sagen, hören Sie viele Vornamentexte an und legen Sie alles hinein, was Sie wollen. Und dann, nach dem letzten Anführungszeichen, geben Sie einfach die Anweisung mit einem Semikolon ein. Und dann führen wir unseren Code aus. Sie werden sagen, das ist meine erste Textzeile und unser Cursor bleibt genau dort am Ende. Weil wir nicht eingegeben haben, ob wir wollten, dass es auf eine neue Linie geht. Ordnung, also los geht's. So können Sie eine einzelne Textzeile auf der Konsole ausdrucken . Was aber, wenn Sie mehrere Zeilen ausdrucken möchten? Nun, Sie haben ein paar Möglichkeiten. Du kannst immer einfach Backslash n sagen . Und dann sagst du so etwas wie: Das ist meine zweite Zeile. Und wenn dein Programm ist, und los geht's. Und du kannst das so oft machen, wie du möchtest. Nun, obwohl wir einfach weiter Backslash n eingeben könnten , gefolgt von zusätzlichen Texten, die wir schreiben möchten. Das wird irgendwann ziemlich chaotisch werden und unseren Code schwer lesbar machen. Wir haben also eine andere Option. Lass uns weitermachen und diesen zusätzlichen Code hier entfernen. Dann kopieren wir diese Zeile und fügen sie unten ein. Und wir sagen etwas wie Das ist meine zweite Zeile. Wie ich schon sagte, wirf einfach alles rein, was du willst. Und dann machen wir weiter und führen unseren Code aus. Und wie Sie sehen können, heißt es nur, dass dies meine erste Textzeile ist. Dann ist dies meine zweite Textzeile ohne Leerzeichen, ohne Interpunktion. Es steht nicht in einer neuen Zeile. Nichts. Das liegt daran, dass Ihr Code beim Programmieren genau das tut, was Sie ihm sagen. Und es wird nichts extra tun, um dir zu helfen. Wenn Sie also wollen, dass etwas passiert, müssen Sie es verwirklichen. Also, wenn wir das aufräumen und es in eine beliebige Zeile bringen wollen , haben wir irgendwelche Interpunktion drin, solche Sachen. Wir müssten es manuell eingeben. Ich kann also sagen, dass dies meine erste Textzeile ist. Zeitraum. Backslash n erzeugt eine neue Zeile. Und dann können Sie eine Periode setzen. Ich denke das auch. Wenn ich wieder code und los geht's. Wahrscheinlich ein bisschen näher an dem, was Sie vorher erwartet haben. Und wenn Sie eine Leerzeile zwischen diesen beiden Zeilen haben möchten , können Sie hier einfach einen weiteren Backslash n am Anfang eingeben. Und los geht's. Du hast eine neue Leitung. Und das kann man eigentlich einfach weiter machen , um mehr neue Zeilen dazwischen zu bekommen. Solltest du wählen. Wie dem auch sei, ich werde weitermachen und das entfernen. Und wenn Sie sich an unsere andere Option erinnern, anstatt einen umgekehrten Schrägstrich n und etwas, das Sie möglicherweise auch häufig sehen , nach doppelten Anführungszeichen steht um es in einen anderen Einfügeoperator zu setzen. Insight end l, alles in Kleinbuchstaben. Und vor dem Semikolon. Wenn wir dann ein Programm erneut ausführen, können Sie sehen, dass es einwandfrei funktioniert. Wenn Sie sich erinnern, habe ich Ihnen gesagt, dass Leerzeichen von C plus plus generell ignoriert werden können. Also, wenn ich zurückgehen und alle Leerzeichen zwischen C aus ihrem Operator entfernen würde , die Anführungszeichen hier. Und am Ende werde ich programmieren. Es würde immer noch gut laufen. Allerdings habe ich euch einfach gesagt, ihr sollt ein Leerzeichen einfügen, da wir das aus Gründen der Lesbarkeit geschrieben haben, denn etwas, das ihr beim Programmieren immer sicherstellen wollt , ist euren Code als wie möglich lesbar. Denn obwohl Sie heute vielleicht eine Lektüre erstellen und verstehen, denken Sie vielleicht , dass jeder andere, der es sich ansieht , es auch verstehen kann. Sie möchten sicherstellen, dass Sie das morgen, in einer Woche, einem Monat oder sogar Jahren später ohne Probleme verstehen einer Woche, einem Monat können. Und das ist etwas, das Sie im Hinterkopf behalten und üben sollten, während wir diesen Kurs fortsetzen. Wie auch immer, das ist so ziemlich alles für das Ausdrucken von Text. Aber ich zeige dir einen letzten Trick. So wie wir einen anderen Einfügeoperator einfügen können , um diese N-Zeile hier einzuwerfen , um eine neue Zeile zu erstellen. Wir können dort auch einfach die Texte eintragen. Anstatt also eine ganz neue C-Out-Anweisung zu erstellen, kann eigentlich einfach diesen Text zusammen mit den Zitaten kopieren . Werde diese Linie komplett los. Und nach diesem zusätzlichen Einfügeoperator können wir einfach unsere Zeile einfügen. Und ich werde das tatsächlich auf eine separate Zeile bringen , damit hier alles auf dem Bildschirm bleibt. Einfach so. Und das wird gut laufen. Und wir könnten hier sogar unsere M-Linie zusammen mit einem anderen Einfügeoperator dazwischen einwerfen . Und das alles wird wie zuvor ablaufen. Du gehst. Jedes Mal, wenn Sie das CLI-Objekt verwenden , um Text auf den Bildschirm zu drucken, werde ich sicherstellen, dass Sie den iostream einbeziehen, so wie das Objekt herkommt. Und wenn ich mit der Maus darüber fahre, können Sie sehen, dass es aus dem std-Namespace stammt , den wir hier angegeben haben. Dann folgen wir ihm immer mit dem Einfügeoperator, das, was wir danach einfügen , in unser Programm einfügt. Jedes Mal, wenn Sie mehr als eine Sache hinzufügen möchten, folgen Sie ihr einfach mit einem anderen Einfügeoperator. Also sagten wir C raus. Dann sagten wir, wir wollen genau das, was zwischen diesen doppelten Anführungszeichen steht, auf den Bildschirm setzen . Also sagte er: „Dies ist unsere erste Textzeile. Setzen Sie einen anderen Einfügeoperator. Setzen Sie hier eine Endlinie, um zu signalisieren, dass wir zu einer neuen Zeile gehen wollen. Und wenn Sie sich erinnern, codieren wir auch einfach den Backslash n, so. Da wir dann etwas anderes hinzufügen, setzen wir einen anderen Einfügeoperator ein. Und dann fügen wir eine weitere wörtliche Textzeile ein, die auf der Konsole gedruckt werden soll, was wiederum durch doppelte Anführungszeichen gekennzeichnet ist. Schließlich, am Ende dieser Anweisung ODER Anweisung für unser Programm, setzen wir einfach ein Semikolon. Wie auch immer, wir werden das CL-Objekt in diesem Kurs viele Male verwenden . Machen Sie sich also keine Sorgen, wenn Sie jetzt nicht alles unten haben, werden Sie eine Menge praktischer Übungen bekommen. Und nur um schnell die Syntax oder die Regeln zum Schreiben von Texten auf die Konsole zu rekapitulieren . Sie sagen einfach Cl, gefolgt vom Einfügeoperator, gefolgt von doppelten Anführungszeichen und einem Semikolon am Ende. Und in diesen Zitaten wird Ihr Text hingehen. Und Sie können dort sogar überhaupt nichts hinstellen und es wird einwandfrei funktionieren. Also mach weiter und spiel ein bisschen damit herum. Schauen Sie sich das Video bei Bedarf erneut an und wir sehen uns im nächsten. 7. Kapitel 2 (Hallo Welt): Kommentare zu den Themen: In diesem Video werden wir über Kommentare in der Programmierung sprechen . Ganz schnell. Lassen Sie uns weitermachen und all diesen zusätzlichen Code außerhalb ihrer Cintiq-Erklärung und unserer Rücksendeerklärung entfernen . Also was unsere Kommentare und Programme sind, nun, sie sind im Grunde genau das, was Sie denken. Ein Kommentar besteht im Grunde aus Texten, die Sie selbst schreiben , um Ihren Code lesbarer zu machen. Also ganz schnell, lass uns weitermachen und unsere Texte wieder eintragen. Wir schreiben Hello World auf die Konsole. Also sagen wir C raus, Einfügeoperator. Und dann in Anführungszeichen sagen Sie Hallo Welt. Und vergiss nicht das Semikolon am Ende. Wir haben jetzt schon ein paar Mal mit diesem Programm gearbeitet . Wir wissen bereits, was es bewirkt. Wenn wir unseren Code ausführen. Es wird einfach Hello World in einer einzigen Zeile sagen. Aber was wäre, wenn wir ein paar eigene Zeilen hinzufügen wollten , um diesen Code lesbarer zu machen. Jetzt verstehe ich, dass unser Programm ziemlich klein und einfach ist und das nicht besonders notwendig ist. Aber wenn wir weiter vorankommen und mit komplexeren Programmen arbeiten, sollten Sie auf jeden Fall so viele Kommentare wie möglich hinzufügen , um Ihren Code so lesbar wie möglich zu machen. Denn obwohl Sie vielleicht wissen, was heute darin steht, möchten Sie in der Lage sein, sich diese Jahre anzusehen, in denen Sie sich nicht erinnern können, etwas davon geschrieben zu haben, und es trotzdem lesen können. Kein Problem. Wie schreiben wir einen Kommentar? In jeder Zeile in unserem Code können wir hier zwei Schrägstriche setzen und alles, was nach diesen beiden Schrägstrichen wird vollständig ignoriert. Wenn wir unser Programm ausführen. Du gibst einen solchen Text ein und führst unseren Code aus. Und es wird einfach HelloWorld heißen, genau wie ich es zuvor getan habe. In diesem Kommentar wird automatisch beendet, sobald wir zu einer neuen Zeile gehen. Jetzt gibt es eine Möglichkeit, Kommentare abzugeben , die sich über mehrere Zeilen erstrecken. Wenn Sie also einen Schrägstrich gefolgt vom eigentlichen Symbol eingeben , ist alles, was über diesen Punkt hinausgeht, ein Kommentar. Wie Sie sehen können, wurde alles darüber hinaus auskommentiert. Der Weg zu n, das ist ein weiteres Astro-Symbol, gefolgt von einem Schrägstrich. Wie Sie sehen können, das so viel ich will hier, aber eine neue Zeile. Und es wird alles genauso funktionieren wie ich es zuvor getan habe. Da hast du es. Wie dem auch sei, ich mache weiter und entferne das, damit du es hast. Sie wissen jetzt, wie Sie Ihrem Code Kommentare hinzufügen können, um ihn lesbarer zu machen. Aber es gibt noch einen weiteren Anwendungsfall für Kommentare , der unglaublich nützlich ist den ich jetzt mit Ihnen besprechen werde. Da also alles innerhalb eines Kommentars ignoriert wird, können Sie tatsächlich eine einzelne oder mehrere Codezeilen herausgeben , um Ihr Programm ohne sie zu testen. Dies kann unglaublich nützlich sein wenn Sie herausfinden möchten, was ein Problem verursacht, oder einfach nur um zu sehen, wie Ihr Code ohne etwas ausgeführt wird. Lassen Sie uns zum Beispiel diese HelloWorld-Zeile ein paar Mal kopieren und einfügen. Einfach so. Und wir werden ein paar davon kommentieren. So konnte ich meinen Code wie zuvor ausführen. Aber es wird Hello World nur dreimal ausgedruckt , weil dieser vierte hier auskommentiert ist. Natürlich ist dies kein gutes Beispiel dafür, wann das verwendet werden sollte, aber wir werden dies während des gesamten Kurses tun. Sie werden also einige praktische Erfahrungen sammeln um dies zu Ihrem Vorteil zu nutzen. Aber ich wollte Sie nur darauf aufmerksam machen und Sie auf alle Anwendungsfälle für Kommentare aufmerksam machen. Wie auch immer, das ist so ziemlich alles für dieses Video ganz schnell. Ich möchte das von diesem Punkt an nur erwähnen, als ich jedes einzelne Video mit einer sauberen Weste begann , die genauso aussieht. Und das werden wir ab diesem Zeitpunkt tun , sofern nicht anders angegeben. Also danke fürs Zuschauen und wir sehen uns im nächsten. 8. Kapitel 3 (Variablen): Einführung in Variablen: In diesem Video werden wir über Variablen sprechen. Eine Variable ist im Grunde nur ein Container zum Speichern von Datenwerten oder ein Name , der einem Speicherort gegeben wurde. Bisher haben wir gelernt, wie man dem Benutzer etwas ausdruckt . Aber was wäre, wenn wir tatsächlich Informationen zurückbekommen wollten ? Oder was wäre, wenn wir Informationen wünschen, auf die wir später zurückgreifen, auf die wir zugreifen und die wir manipulieren könnten ? Nun, hier kommen Variablen ins Spiel. Wie erstellen wir also eine Variable? Nun, lass uns das durchgehen. Die Syntax zum Erstellen einer Variablen oder bei den Regeln zum Erstellen einer Variablen lautet also oder bei den Regeln zum Erstellen wie folgt. Zuerst beginnen Sie mit dem Datentyp. Und dies stellt den Datentyp , den Sie in der Variablen speichern möchten. Möglicherweise möchten Sie Zahlen, Wörter, Zeichen oder einen wahren oder falschen Wert usw. speichern . Und wir werden die verschiedenen Datentypen in den kommenden Videos durchgehen. Nach dem Datentyp geben Sie den Namen der Variablen ein. Wenn Sie jetzt eine Variable benennen, sollten Sie sicherstellen, dass Ihr Name beschreibend für das ist, was Sie speichern. Nehmen wir zum Beispiel an, Sie haben ein Flipperspiel gemacht. Sie wollten den aktuellen Spielstand speichern. Anstatt diese Nummer eins zu nennen, möchten wir es vielleicht als aktuelle Punktzahl bezeichnen. Dann möchten wir vielleicht eine andere Variable zum Speichern des Highscores, zum Beispiel. Und wir würden sie nicht entsprechend benennen wollen. Nun, wenn Sie eine Variable benennen, gibt es einige gängige Namenskonventionen, die ich Ihnen empfehlen würde , da Sie sie häufig sehen werden. Und vor allem, wenn Sie mit anderen Menschen zusammenarbeiten, werden sie dies wahrscheinlich auch tun. Wenn Sie also eine Variable benennen, beginnt sie im Allgemeinen immer mit einem Kleinbuchstaben. Außerdem würde ich empfehlen, es in CamelCase zu schreiben, was bedeutet, dass der erste Buchstabe in Kleinbuchstaben geschrieben wird. Es wird keine Leerzeichen oder Satzzeichen geben. Und am Anfang jedes nachfolgenden Wortes nach dem ersten beginnen wir mit einem Großbuchstaben. Die andere Option, die Sie häufig für die Benennung von Variablen sehen werden , ist, dass Schlangenfall rechtfertigt, dass diejenigen sie trennen, indem sie nur einen Großbuchstaben am Anfang jedes nachfolgenden Wortes bis zum 1. haben. trennen Sie sie einfach mit einem Unterstrich. Und dann können Sie den ersten Buchstaben so in Kleinbuchstaben belassen . Für den Rest dieses Kurses werde ich unsere Variablen mit einem ersten Kleinbuchstaben und dann mit Kimball schreiben. Weil das Z am häufigsten vorkommt und ich finde es einfacher , persönlich zu lesen. Also werde ich weitermachen und den Variablennamen schreiben , so. Und ich werde Ihnen andere Namenskonventionen zeigen , wenn es um andere Dinge geht , während wir den gesamten Kurs fortsetzen. Also um eine Variable zu deklarieren oder im Grunde zu sagen, dass Sie eine Variable benötigen. In diesem Programm beginnen wir mit einem Datentyp, gefolgt vom Namen und dann einem Semikolon am Ende. Und dann haben Sie, dass Sie eine Variable erstellt haben. Wie ich in den kommenden Videos sagte, werden wir die verschiedenen Datentypen und deren spezifische Erstellung und ihre Anwendungsfälle durchgehen. Bevor wir diese Variable tatsächlich verwenden und Code eingeben, müssen wir ihr einen Anfangswert geben. Es gibt mehrere Möglichkeiten , dies zu tun. zunächst an, Nehmen wir zunächst an, dass diese Variable eine ganze Zahl gespeichert hat. Okay, wir haben also unseren Datentyp zum Speichern einer ganzen Zahl. Und dann nennen wir das einfach Ergebnis. Zum Beispiel. Nehmen wir an, das war ein Spielstand und ein Fußballspiel oder so ähnlich. Nun, wir könnten den Anfangswert auf 0 setzen, so. Dies ist absolut gültig und jetzt haben wir unserer Variablen einen Anfangswert deklariert und geben ihm einen Anfangswert , damit wir ihn in Zukunft verwenden können. Sie würden niemals eine Variable verwenden wollen, bevor Sie ihr einen Anfangswert geben, da Sie am Ende verschiedene Fehler erhalten. Eine andere Möglichkeit wäre, es jetzt zu deklarieren, wie wir es bereits getan haben, und ihm später einen Anfangswert zu geben. Lassen Sie mich Ihnen zeigen, wie das aussieht. Nachdem wir hier oben eine Variable deklariert haben, können wir sie referenzieren und ihr später in unserem Code einen Anfangswert geben . Wie machen wir das? Zuerst sagen wir nur den Namen der Variablen , auf die wir verweisen möchten. Wir können also Umfang sagen, dann geben wir ihm den Wert, den wir wollen. Ich könnte also sagen, ist gleich fünf. Zum Beispiel. Das würde auch funktionieren. Solange wir unseren Variablen einen Wert geben, bevor sie später verwenden, können wir alle loslegen. Jetzt gibt es eine andere Möglichkeit, Variablen zu deklarieren und zu initialisieren, die ich Ihnen jetzt zeigen werde. Aber ich persönlich würde es nicht wirklich empfehlen. Aber falls du es siehst, möchte ich dich wissen lassen , dass es da draußen ist. Und wer weiß, vielleicht entscheiden Sie sich dafür, es in einem zukünftigen Projekt zu verwenden. Was ich Ihnen zeigen werde, ist, wie Sie mehrere Variablen in derselben Zeile deklarieren und initialisieren. Wir können also sagen, der Datentyp gefolgt von den Namen der Variablen , die Sie für denselben Datentyp haben möchten. Nehmen wir zum Beispiel an, ich wollte mehrere Variablen zum Speichern von Zahlen erstellen . Ich würde es in den richtigen Datentyp setzen, gefolgt vom Namen meiner ersten Variablen. Also sage ich einfach var eins, getrennt durch ein Komma. Und dann kann ich so viele Variablen machen, wie ich möchte. Ich kann tun, wenn R1, R2, R3, so weiter. Jetzt können diese jeden Namen haben, den Sie wollen. Ich habe gerade 123 als grundlegendes Beispiel angeführt. Obwohl dies mehrere Variablen desselben Datentyps deklariert , können Sie jeder Variablen auch einen Anfangswert geben, wenn Sie möchten. Nach jedem von ihnen kann ich sagen, dass es gleich ist. Und dann, und ich könnte das für jeden tun. Ich könnte es nur für einen oder zwei von ihnen machen, und so weiter. diese Weise können Sie also mehrere Variablen in derselben Zeile deklarieren und initialisieren mehrere Variablen in derselben Zeile solange sie denselben Datentyp haben. Und Sie können sie später immer noch initialisieren , wie wir es oben getan haben. So kann ich zum Beispiel sagen, dass var drei gleich vier ist. Jetzt hätte ich es hier deklariert und hier unten initialisiert . Und das wäre absolut gültig. Wie dem auch sei, das war's für dieses Video. Im nächsten Video werden wir tatsächlich anfangen, mit unserem allerersten Datentyp zu arbeiten , der ganze Zahlen sind. Also danke fürs Zuschauen und wir sehen uns im nächsten. 9. Kapitel 3 (Variablen): Ganzzahl: In diesem Video gehen wir auf unseren allerersten variablen Datentyp ein, nämlich Ganzzahlen. Ganzzahlen werden zum Speichern ganzer Zahlen verwendet und gehen über Datentypen, die später Zahlen mit Dezimalstellen oder Gleitkommazahlen speichern können . Ganz schnell, ganze Zahlen sind nicht der einzige Datentyp zum Speichern ganzer Zahlen. Aber weil es das ist , das am häufigsten verwendet wird, werden wir heute darüber nachdenken. Und machen Sie sich keine Sorgen, wenn Sie jemals einen der anderen verwenden mussten. Sie werden genauso verwendet. Der einzige Unterschied ist der Wertebereich , in dem sie speichern können , und die Menge an Speicher, die sie belegen. Zunächst einmal gibt es zwei verschiedene Arten von ganzen Zahlen. Grundsätzlich besteht der einzige Unterschied zwischen einer zugewiesenen und einer vorzeichenlosen Ganzzahl darin, dass zugewiesene Integer unter 0 fallen können. Sie können also alles speichern, von diesem negativen Wert hier bis zu diesem positiven Wert hier. Und eine vorzeichenlose Ganzzahl hat keine Berechtigung , unter 0 zu gehen. Aber aus diesem Grund kann es den doppelten positiven Wert speichern und es gibt den einzigen Unterschied zwischen den beiden. Wann würden Sie also eine vorzeichenlose Ganzzahl verwenden wollen? Nun, für mich persönlich, wenn ich weiß, dass meine Ganzzahl nicht unter 0 fallen muss, werde ich immer eine vorzeichenlose Ganzzahl verwenden , damit ich die höchstmögliche maximale Menge an positivem Ergebnis habe die höchstmögliche maximale Menge an Zahlen, die mir zur Verfügung stehen, ohne zusätzlichen Speicher zu verwenden, indem ich einen anderen Datentyp verwende. Nehmen wir zum Beispiel an, Sie haben ein Programm erstellt , um beispielsweise ein Fußballspiel zu verfolgen, und keine Mannschaft kann möglicherweise unter 0 gehen Sie können genauso gut eine vorzeichenlose Ganzzahl verwenden. Lassen Sie uns also weitermachen und unsere allererste Variable des Integer-Datentyps erstellen . Wenn Sie sich erinnern, lautet die Syntax zum Erstellen einer Variablen wie folgt. Zunächst beginnen wir mit dem Datentyp. In diesem Fall sagen wir in Kleinbuchstaben dass wir eine Ganzzahl gefolgt vom Namen erstellen möchten . In diesem Beispiel sagen wir Alter und dann ein Semikolon am Ende. Und da haben Sie es mit unserer allerersten Integer-Variablen deklariert . Bevor wir diese Variable verwenden, müssen wir ihr einen Anfangswert geben. Dies ist auch ein guter Zeitpunkt, um Sie darüber zu informieren , dass unser gesamter Code in unserer Hauptfunktion hier von oben nach unten gelesen wird . Daher kann ich das variable Alter nicht vor der Deklaration initialisieren . Wenn ich zum Beispiel hier oben versucht habe zu sagen, dass Alter gleich 0 ist, mit einem Semikolon am Ende. Es würde nicht wissen, wie alt es ist. Denn wie gesagt, es wird von oben nach unten gelesen. Aber wenn wir das nehmen und es hier unten setzen, wird es gut funktionieren. Denken Sie also daran, dass der alte Code von oben nach unten gelesen wird. In dieser ersten Zeile haben wir also eine Variable deklariert. Und in der zweiten Zeile initialisieren wir eine Variable. Wenn Sie sich erinnern, können wir beide in genau derselben Zeile machen. Also werde ich weitermachen und diese schnell löschen. Und wir sagen, dass Alter gleich 0 ist und dann am Ende ein Semikolon. Was wäre, wenn wir diese Variable für den Benutzer ausdrucken möchten? Nun, wir machen es im Grunde genauso , wie wir Texte für den Benutzer ausgedruckt haben. Also hier unten sagen wir C0. Und dann der Einfügeoperator, gefolgt vom Namen unserer Variablen. Denken Sie daran, dass wir jedes Mal, wenn wir auf eine Variable zugreifen oder sie bearbeiten möchten , den Namen eines Benutzers benötigen. Also sagen wir CL, um dem Benutzer etwas auszudrucken. Dann geben wir einfach H ein. Und die Großschreibung muss übrigens genau die gleiche sein wie die hier oben. Wenn ich dies zum Beispiel in ein großes A geändert habe, wird diese Variable nicht mehr erkannt. Okay? Wie gesagt, Ihre Großschreibung bei der Programmierung ist sehr wichtig. Also, wenn wir hier Kapital schlagen wollten und wir auch hier unten eine Hauptstadt sein müssen. Lassen Sie uns jetzt unser Programm ausführen. Und wie Sie sehen können, gibt es 0 auf der Konsole aus. Wir können den Wert einer Variablen auch bearbeiten , nachdem sie deklariert wurde. So könnten wir zum Beispiel sagen, dass das Alter gleich drei ist. Nun hätten wir es so machen können, wo wir unsere Variable deklarierten und sie dann hier initialisieren und dann hier unten ausdrucken können. Aber ich zeige Ihnen nur, dass Sie, nachdem Sie eine Variable und einen Anfangswert angegeben haben, diese später bearbeiten können. Also sagten wir, wir wollten eine Ganzzahl namens age erstellen. Wir setzen es auf 0. Dann haben wir erneut H referenziert. Deshalb wollen wir es auf drei setzen. Dann haben wir es auf der Konsole ausgedruckt. Also führe ich einen Code aus. Und los geht's. Wir haben drei ausgedruckt. Wenn wir jetzt einen Blick zurück auf unsere Variable , ist das nicht sehr beschreibend. Zu sehen ist, dass hier nur der tatsächliche Wert von H ausgedruckt wird. Warum werfen wir also nicht einige Textfehler ein. Also hier haben wir CL nach dem Insertionsoperator geschrieben. Lassen Sie uns weitermachen und es in ein paar Anführungszeichen setzen, gefolgt von einem weiteren Einfügeoperator vor unserem Variablennamen hier. Dann werden wir in diesen Zitaten sagen, dass Ihr Alter Dickdarmraum ist, genau so. Und wieder ist es jetzt viel einfacher zu lesen. Das ist also dein Alter, ist drei. Nun, eine letzte Sache, die ich mit dir besprechen möchte , bevor wir zum nächsten Video übergehen. Liegt das daran, dass unser Code von oben nach unten gelesen wird. Wenn wir die Gliederung hier kopieren und sie nach unserer Deklaration einer Variablen setzen , so. Wir können H tatsächlich zweimal mit den beiden verschiedenen Werten ausdrucken . Also erstellen wir eine Integer-Variable namens age und setzen sie auf 0. Und dann drucken wir es hier unten aus. Dann ändern wir es auf drei und drucken es erneut aus. In unserem Programm können Sie hier sehen, wie das aussieht. Und los geht's. Der erste druckt auf 0 und der zweite gibt drei aus. Und denken Sie daran, wenn wir das in Ordnung bringen wollen , damit es etwas sauberer aussieht. Am Anfang dieses hier unten können wir einfach Backslash, Backslash n und R-Code sagen . Erstellen Sie eine Leerzeile für uns. Und da hast du es. Sie wissen jetzt, wie man ganze Zahlen erstellt und damit arbeitet. Und keine Sorge, wir werden sie während des gesamten Kurses häufig verwenden. Du wirst also eine Menge praktischer Übungen bekommen. Auch die Art und Weise, wie wir es hier oben haben, wo wir eine Variable in derselben Zeile deklariert und initialisiert haben, wird allgemein als gute Praxis angesehen , wenn Sie dazu in der Lage sind. Der Grund dafür ist, dass Sie eine Variable nicht verwenden möchten , bevor Sie ihr einen Anfangswert geben. Wenn Sie es deklarieren, geben Sie ihm sofort einen Anfangswert. Sie vermeiden ernsthafte Probleme. Und schließlich, bevor ich das vergesse, wird hier als Ganzzahl mit Vorzeichen betrachtet. Das ist der standardmäßige Integer-Typ. Wenn Sie möchten, können Sie dies sogar explizit als Ganzzahl mit Vorzeichen definieren, indem Sie Leerzeichen mit Vorzeichen angeben und dann einfach so enden. Aber das und das ist genau dasselbe. Wenn Sie eine vorzeichenlose Ganzzahl erstellen möchten, können Sie einfach unsigned sagen. Wie dem auch sei, das ist alles für dieses Video. Danke fürs Zuschauen und wir sehen uns beim nächsten. 10. Kapitel 3 (Variablen): Floating: In diesem Video werden wir über Fließkommaarten oder Zahlen mit Dezimalzahlen sprechen . Jetzt werden wir nicht jeden einzelnen Gleitkomma-Typ in C plus plus durchgehen . Aber wir werden die beiden wichtigsten durchgehen. Und ich erkläre Ihnen, wie Sie das Wissen, das Sie aus diesem Video erhalten , auch auf andere Gleitkommatypen anwenden können. Schauen wir uns also diese beiden wichtigsten Gleitkommatypen in C plus an. Der erste, den wir hier haben, ist ein Float. Und ein Float kann ungefähr sieben signifikante Ziffern enthalten. Wenn Sie jetzt nicht wissen, was signifikante Ziffern sind und Sie planen, mit Gleitkommatypen zu arbeiten. Ich kann nur empfehlen, sich das anzusehen. Um jedoch kurz zusammenzufassen, was sie sind. Die signifikanten Ziffern sind jede der Ziffern einer Zahl , die verwendet wird, um sie ausgehend von der ersten Ziffer ungleich Null mit der erforderlichen Genauigkeit auszudrücken um sie ausgehend von der ersten Ziffer ungleich Null mit der erforderlichen Genauigkeit . Hoffentlich hat das Sinn ergeben. Wenn nicht, machen Sie sich darüber keine Sorgen, Sie können es jederzeit zu einem anderen Zeitpunkt nachschlagen und es wird Ihre Fähigkeit, in diesem Kurs mitzumachen , nicht beeinträchtigen und es wird Ihre Fähigkeit, in diesem Kurs mitzumachen . Wenn Sie jedoch vorhaben, mit Daten zu arbeiten, muss dies unglaublich genau sein , wenn Sie planen, mit Dezimalstellen und Werten zu arbeiten . Ich würde dringend empfehlen, sich das anzusehen, damit Sie wissen was jeder der Gleitkommatypen genau speichern kann. Dann ist unser zweiter hier ein Double, das ungefähr 15 signifikante Ziffern speichern kann. Und der Grund, warum es Double genannt wird, ist, dass es tatsächlich doppelt so viel Speicherplatz im Speicher beansprucht. Und die Genauigkeit eines Doubles im Vergleich zu einem Float ist ebenfalls etwa doppelt so hoch. auch immer, lassen Sie einen Blick darauf werfen, wie wir Gleitkommatypen von r erstellen können Gleitkommatypen von . Wie bei jeder anderen Variablen werden wir also mit dem Datentyp beginnen. Also für unseren ersten hier sagen wir float, alles so in Kleinbuchstaben. Dann sagen wir so etwas wie Höhe für den Namen. Dann setzen wir das auf etwa 4.3. Und dann setzen wir einfach ein Semikolon am Ende. Eine Sache, die ich Ihnen hier zeigen möchte , ist, dass wenn ich mit der Maus über diesen Wert fahre, Sie sehen können, dass dieser Wert hier doppelt ist. Und das liegt daran, dass der standardmäßige Gleitkommadatentyp in C plus ein Double ist. Wenn Sie also nicht wirklich mit einem Double arbeiten, müssen Sie dem Compiler ausdrücklich mitteilen , dass Sie dies tun können, indem Sie ein bestimmtes Suffix hinzufügen , abhängig von dem Gleitkomma-Typ, mit dem Sie arbeiten möchten. Und für einen Float wird das einfach so ein Kleinbuchstabe sein. Wenn ich jetzt mit der Maus darüber fahre, kannst du sehen, dass es jetzt ein Float ist. Ordnung, wenn Sie also nicht mit einem Double arbeiten, müssen Sie ein Suffix hinzufügen das auf dem Gleitkomma-Typ basiert, mit dem Sie arbeiten. Und Sie können all diese Informationen für die verschiedenen Gleitkommatypen leicht online finden die verschiedenen Gleitkommatypen falls Sie sich dafür entscheiden , sich darauf einzulassen. Aber wie gesagt, für die meisten davon werden die beiden Typen sein, die Sie verwenden werden. Dann lass uns auch weitermachen und ein Double erstellen. Darunter werden wir „doppelter Datentyp“ sagen. Und wieder einmal, das war alles in Kleinbuchstaben. Dann setzen wir für einen Namen diesen Wert einfach auf 5.6, ungefähr so. Weil der Standarddatentyp für Gleitkommazahlen ein Double ist. Wir müssen kein Suffix hinzufügen. Nun, nur um Sie wissen zu lassen, die Syntax zum Erstellen wird die Syntax zum Erstellen anderer Gleitkommatypen genau dieselbe sein wie diese hier. So wie es bei jeder anderen Variablen der Fall ist. Wir beginnen mit Ihrem Datentyp, gefolgt vom Namen Ihrer Variablen. Und denken Sie daran, wir brauchen nur diese beiden Dinge, um es zu deklarieren. Und dann können wir es auch in derselben Zeile zuweisen, wie wir es hier getan haben, indem wir dieses Gleichheitszeichen hinzugefügt oder was einige von Ihnen vielleicht als Zuweisungsoperator kennen. Und ich werde diese Wörter synonym verwenden. Wisse einfach, dass es dasselbe ist, gefolgt von einem Wert hier. Also wie ich schon sagte, wir hätten unsere Variablen einfach so deklarieren können. Greifen Sie später mit nur dem Namen darauf zu. Und dann setze sie später in unserem Code auf etwas. So. Das hätte auch gut funktioniert. Wie dem auch sei, ich mache weiter und mache das rückgängig. Und eine weitere Sache, die ich kurz erwähnen möchte, ist, dass Gleitkommatypen im Gegensatz zu ganzzahligen Datentypen nicht signiert oder vorzeichenlos sein können. Sie sind alle nur zugewiesen, was bedeutet, dass sie positive und negative Zahlen haben können. Lassen Sie uns als Nächstes diese beiden Variablen ausdrucken. Also hier unten sagen wir CL. Dann fügen wir einen weiteren Einfügeoperator hinzu, und wir sagen inline. Fügen Sie hier keinen weiteren Einfügeoperator hinzu und sagen Sie Hallo zu. Einfach so. Und so haben wir jetzt einen Float namens height erstellt und ihm einen Wert von 4.3 gegeben. Dann haben wir das Suffix hinzugefügt, um anzugeben, dass es sich um einen anderen Gleitkommatyp handelt, der nicht doppelt ist, was die Standardeinstellung ist. Dann haben wir ein Double erstellt, das auch Höhe zwei genannt wird, und es auf 5,6 gesetzt. Und wieder nimmt ein Double kein Suffix auf , da ein Double der Standarddatentyp für Gleitkommazahlen und/oder Zahlen mit einer Dezimalzahl ist der Standarddatentyp für . Dann sagten wir, wir wollen etwas ausdrucken. Und was auch immer wir ausdrucken wollen, wir wollten die Höhe mit 4,3 drucken. Dieses f wird übrigens nicht gedruckt. Dies ist nur ein Suffix für den Compiler, um explizit anzugeben, was dieser Datentyp ist. Dann sagten wir, dass wir zu einer neuen Linie gehen wollen. Also haben wir diese Zeile hier hinzugefügt, und auf unserer neuen Linie drucken wir sie auf 5,6 aus. Wenn wir also einen Code ausführen, können Sie sehen, dass alles einwandfrei funktioniert. Beachten Sie erneut, dass Suffixe für Gleitkommatypen nicht ausgedruckt werden. Also los geht's. Auf diese Weise können Sie Gleitkommatypen erstellen und damit arbeiten. Und dafür werden Sie später im Kurs auch weitere Beispiele sehen . Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 11. Kapitel 3 (Variablen): Boolesche und Boolesche: In dieser Folge werden wir über Boolesche Werte sprechen, auch als Bulls, Bulls Eye oder ein Datentyp zum Speichern von wahren oder falschen Werten bezeichnet werden, auch bekannt als Ein oder Aus oder Ja oder Nein oder Eins oder 0. Lassen Sie uns also weitermachen und ein Beispiel dafür erstellen. Nehmen wir zum Beispiel an , wir erstellen ein Programm für ein Licht. Möglicherweise möchten wir eine Variable dafür speichern, ob dieses Licht ein- oder ausgeschaltet ist. Wie machen wir das? Nun, genau wie bei jeder anderen Variablen beginnen wir mit ihrem Datentyp. In diesem Fall sagen wir Bool, alles in Kleinbuchstaben. Dann folgen wir ihm mit dem Namen. Werde das so etwas wie es ist nennen. Dann machen wir weiter und setzen dies gleich falsch. Übrigens nur als Referenz hier oben. Wenn etwas auf Ja wahr ist, auch immer du es nennen willst, ist dasselbe wie es gleich eins zu setzen, sagen, dass der Wert davon eins ist. Und wenn etwas falsch ist, habe ich dich jetzt. Es ist dasselbe wie zu sagen, dass es 0 ist. Also das hier ist ein Ball, der auf falsch gesetzt ist , genauso wie zu sagen, dass on 0 ist. Und das wird so oder so funktionieren. Wie dem auch sei, ich werde weitermachen und uns zurückbringen. Stellen Sie sicher, dass das Wort falsch auch in Kleinbuchstaben geschrieben wird. Wie auch immer, lass uns weitermachen und das auf die Konsole stellen und sehen, was passiert. Nehmen wir an, so etwas wie CL läuft. Fantastisch. Die Sänger werden während des gesamten Kurses die Dinge zeitweise auf der Konsole ausdrucken . Ich sage nur Cl, gefolgt von dem, was wir drucken werden nur um die Dinge am Laufen zu halten und den Dialog ein bisschen sauberer zu halten. Wie dem auch sei, lass uns weitermachen und unser Programm ausführen. Sie werden sehen, dass es tatsächlich 0 ausgibt. Denn wie gesagt, false ist dasselbe wie 0 in wahr wie eins. Es kann übrigens nur eins oder 0 halten. Oder Sie können explizit false oder true in Kleinbuchstaben eingeben , aber es können keine anderen Zahlen außerhalb davon enthalten. Nun gibt es tatsächlich eine Möglichkeit, es falsch ausdrucken zu lassen , anstatt nur 0. Und das zeige ich dir gleich hier. Ganz schnell. Ich werde weitermachen und das in wahr ändern. Und wenn ich wieder programmiere, sieht man, dass es eines ausdruckt. Ich möchte, dass ihr die RSC-Gliederung hier mit einem Semikolon kopiert . Und dann unten sagen wir CO. Dann sagen wir cooles Alpha. Dann ein Semikolon am Ende. Einfach so. Sobald wir das eingegeben haben, aktivieren wir tatsächlich etwas. Sobald dies aktiviert ist, wird jedes Mal, wenn wir einen Bullenwert ausdrucken, tatsächlich wahr oder falsch angezeigt. Wenn wir also unsere Zeile einfügen, wir hier unten kopiert haben, sollte sie jetzt eine stehen, weil unser Wert wahr ist. Und nachdem wir hier die Alpha-Spule eingeschaltet haben, wird es wahr sagen. Und stellen wir sicher, dass dies in einer neuen Zeile steht, unserer ersten Zeile hier am Ende. Und lassen Sie uns weitermachen und einen weiteren Einfügeoperator hinzufügen. Und wir sagen einfach so Endlinie, oder Ende I, sollte ich sagen. Wenn wir unser Programm ausführen. Und los geht's. Jetzt sagt eins und dann wahr. Und das wäre dasselbe wenn wir weitermachen und dies in false ändern und ein Programm ausführen würden, es läuft genauso. Okay? Und was wir tun werden, ist diese oberste Zeile mit unserer n-ten Bindung hier noch einmal zu kopieren. Dann löschen wir diese untere und fügen sie ein, diese neue, so. Dann machen wir weiter und fügen noch ein paar Mal ein. Und darunter steht CL, nein, Alpha, alles Kleinbuchstaben. Einfach so. Dann fügen wir die Gliederung noch ein paar Mal ein. Wenn wir dann hier für Alpha aktivieren, statt boolesche Werte als 0 oder Eins ausgegeben, es wird wahr oder falsch angezeigt. Und wenn wir es dann deaktivieren, indem wir No Bull Alpha sagen, was die Standardeinstellung war , wird es wieder 000 sagen. Also werde ich hier nur ein paar Kommentare haben. Und führe unseren Code aus. Wie Sie sehen können, 0 beim ersten Mal, dann drucken Sie es dreimal falsch und dann 03 mal aus . Dann haben wir eine leere Zeile weil wir hier eine Zeile hinuntergegangen sind. Die Spool-Alpha in no, alpha ist übrigens Teil des std-Namespaces. Wenn Sie das noch einmal ausdrücklich sagen möchten, könnten Sie sagen, dass ein Doppelpunkt gefolgt von Alpha ebenfalls akzeptabel ist. Aber weil wir bereits hier oben haben und dass wir diesen Namespace verwenden , müssen wir nicht neu definieren, woher das kommt oder explizit sagen, woher das kommt. Nochmals eine letzte Sache , um das Video abzuschließen. Etwas, das Sie tun können, anstatt nur zu sagen, dass Sie diesen Namespace im Allgemeinen verwenden werden , den wir an dieser Stelle für CL, N line und wir werden Alpha verwenden. Sie können explizit angeben , welche Dinge Sie von diesem Namespace aus verwenden werden. Ich könnte also sagen, dass ich einen Doppelpunkt verwende, Doppelpunkt in einer Zeile mit einem Semikolon am Ende, so. Und dann könnten Sie dasselbe für CL tun und Alpha und Notebooks Handy ziehen. Aber ich werde weitermachen und das wieder so machen, wie es war. Jedenfalls. Sie wissen jetzt, wie man boolesche Variablen verwendet und erstellt, und wir werden diese auch im Laufe des Kurses häufiger verwenden . Das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 12. 11: In diesem Video werden wir über den Datentyp char sprechen . Jetzt ist char die Abkürzung für Zeichen, und daher wird datatype zum Speichern einzelner Zeichen verwendet. Der Bereich für diesen Datentyp ist negativ 120 2027 mit Vorzeichen oder Null bis 255 ohne Vorzeichen. Und Sie können eine signierte und eine unsignierte Version genauso erstellen wie mit der Integer-Variablen. Jetzt kann der Chart-Datentyp auch ASC-, ISI-Werte, tos verwenden und bestimmte Charaktere abspielen. Wenn Sie wissen möchten, um welche es sich handelt, können Sie einfach eine A-S-C-I-I Tabellenreferenz nachschlagen. Dies ist die Abkürzung für den American Standard Code for Information Interchange. Wie auch immer, lassen Sie uns weitermachen und einen Diagrammdatentyp erstellen. Also sagen wir Diagramm, um den Datentyp der Variablen anzugeben, die wir erstellen, genau wie bei jeder anderen Variablen. Dann geben wir dem einen Namen. Zum Beispiel nennen wir diesen Brief. Einfach so. Dann werden wir weitermachen und es jetzt auch initialisieren. Und wir sagen so etwas wie gleichwertig. Und dann in C plus plus, wenn Sie etwas den Wert eines einzelnen Zeichens oder eines Zeichens geben , möchten Sie es in einfache Anführungszeichen setzen. Und dann könnten wir sagen, wir könnten kapitell arbeiten, wenn wir wollten. Dies wird genauso ausgedruckt, wie es wäre, wenn wir dies in doppelte Anführungszeichen setzen würden, eine über C-Out-Anweisung. So fett wie ein Kapital, wird es als Kapital gedruckt. Und wenn es einen Kleinbuchstaben hat, wird es als solches gedruckt. Wir können das jetzt testen. Also hier unten versuche ich zu sagen, ja. Brief. Dann ein Semikolon am Ende. Übrigens, für diejenigen unter Ihnen, die Visual Studio während der Eingabe verwenden , dieses Dropdown-Feld möglicherweise auffallen. Und Sie können tatsächlich darauf zugreifen, indem die Auf- und Abwärtspfeile verwenden und dann die Eingabetaste drücken , um einen auszuwählen. Hier wird automatisch unser Variablenname angezeigt, während wir ihn eingeben. Und wir können die Eingabetaste drücken, um es automatisch auszufüllen. Und das wird immer nützlicher werden, da wir größere Programme ausführten und ziemlich viel tippten. Oder wenn Sie einen längeren Variablennamen haben. Wie dem auch sei, lass uns weitermachen und unser Programm ausführen. Und wie Sie sehen können, Tippfehler. Sie können auch ein zufälliges A-S-C-I-I-Zeichen ausdrucken , indem Sie hier eine Zahl eingeben, die mit einem verknüpft ist. Also setze ich z.B. einfach 25. Nun, das ist eigentlich kein Zufall und es wird jedes Mal dasselbe ausgedruckt. Ich meinte nur, dass ich nicht weiß, welchen Charakter das ausdrucken wird . Also müssen wir es ausführen. Und wie Sie hier sehen können, druckt es einen Abwärtspfeil aus. Und nur um zu beweisen , dass es nicht zufällig ist, wenn ich das noch einmal ausführe, wird es jedes Mal einen Abwärtspfeil ausdrucken . Wie gesagt, Sie können immer eine Tabellenreferenz der ASC II-Zeichen nachschlagen der ASC II-Zeichen wenn Sie sehen möchten, was das sind und damit herumspielen möchten. Beachten Sie das, weil wir hier kein einzelnes Zeichen als Wert unserer char-Variablen eingegeben haben. Wir haben die einzelnen Anführungszeichen herausgenommen. Um Ihnen dies zu zeigen, lassen Sie uns den Wert für 25 Jahre entfernen. Setzen Sie unsere einzelnen Anführungszeichen wieder ein. Und dann tippe ich einfach eine Nummer wie drei ein und führe unseren Code aus. Das wird auch funktionieren. Und nur um Ihnen das zu zeigen, was ich gerade gesagt habe, können Sie weitermachen und dies zu einem signierten Horoskop machen , indem Sie Sinus nehmen. Denken Sie daran, dass dies der Standard ist. Also dies und das sind genau dasselbe für sagen wir, unsigniert, so. Und dann kann das nur einen positiven Wert haben. Wenn wir es jetzt noch einmal aufrufen wollen, können Sie sehen, dass es immer noch funktioniert. Wie dem auch sei, das ist alles für dieses Video. Im nächsten Video gehen wir auf String-Datentyp ein, der zum Speichern mehrerer Zeichen, Wörter oder Phrasen verwendet wird. Also danke fürs Zuschauen und wir sehen uns beim nächsten. 13. Kapitel 3 (Variablen): Zeichenketten: In dieser Folge werden wir über Strings sprechen, bei denen es sich um einen Datentyp für eine Reihe von Zeichen oder eine Folge von Zeichen handelt. Grundsätzlich sollten Sie also immer dann, wenn Sie eine Reihe von Text oder Zahlen speichern möchten, die länger als ein einzelnes Zeichen sind, eine Zeichenfolge verwenden. Wir werden auch die Header-Dateizeichenfolge einschließen . Im Folgenden wird das kopiert, was oben steht. Sagen wir also, Hashtag enthält das Kleiner-als-Zeichen. Wir sagen String, gefolgt vom Größer-als-Zeichen. Und los geht's. Wir haben jetzt Zugriff auf den gesamten Code in dieser Datei. Für diejenigen unter Ihnen in Visual Studio können Sie auch mit der rechten Maustaste darauf klicken und zu einem Dokument gehen, das Sie benötigen. Und Sie können sich den Code in dieser Datei tatsächlich ansehen. Aber für die Mehrheit von Ihnen und mir ist das nicht wirklich wichtig. Aber für diejenigen unter Ihnen, die es vielleicht brauchen oder einfach nur neugierig sind, gibt es eine Möglichkeit, sich das anzusehen. Wie erstellen wir eine Zeichenkette? Nun, genau wie jede andere Variable. Also machen wir eine Zeichenkette, einen Datentyp und alles in Kleinbuchstaben. Dann machen wir weiter und geben ihm einen Namen. Nennen wir diesen Namen zum Beispiel. Dann machen wir weiter und setzen es John Doe gleich. Denken Sie daran, dass wir mit einer Reihe von Texten arbeiten, wir mit einer Reihe von Texten arbeiten, doppelte Anführungszeichen verwenden. Und wenn wir nur mit einem einzigen Zeichen arbeiten, werden die einfachen Anführungszeichen verwendet. Da wir eine Zeichenfolge speichern möchten, verwenden wir die doppelten Anführungszeichen. Und wir sagen John, einfach so. Und wenn wir das ausdrucken wollen, können wir einfach C raus sagen. Und wenn wir unser Programm ausführen, können Sie sehen, dass es John Doe sagt. Und übrigens, eine Zeichenkette, zusammen mit vielen anderen Dingen, die wir verwendet haben und die sie in Zukunft verwenden werden , sind alle Teil dieses Standardnamensraums. Sie können es dort explizit definieren, wenn Sie möchten. Sie können sogar sehen, dass wenn ich in Visual Studio mit der Maus darüber fahre, dass es mich wissen lässt, dass es Teil dieses Namespaces ist. Aber für den Rest des Kurses werde ich das einfach hier belassen , damit alles, was einen Teil davon macht, ich es nicht ausdrücklich erwähnen muss. Nun, ganz schnell, bevor wir das Video beenden, werden wir einige Funktionen durchgehen , die Teil der String-Klasse sind. Wie ich schon sagte, wir werden die Funktionen in Klassen durchgehen . Später im Kurs. Es wird mehrere Videos darauf geben. Sie sich also keine Sorgen darüber, was sie sind oder wie sie gerade funktionieren. Aber ich wollte nur ein paar davon mit dir besprechen , damit du weißt, wie man sie benutzt. Und nur damit Sie eine Vorstellung davon haben, welche Art von Funktionalität es für Strings gibt. Lassen Sie uns zum Beispiel weitermachen und diese Zeile hier bereinigen. Also, nach einem c out und dem Einfügeoperator, wir weiter und setzen doppelte Anführungszeichen. Und wir sagen Mein Name ist. Einfach so. Vergessen Sie nicht, dass wir hier einen weiteren Einfügeoperator hinzufügen müssen , um unsere Variable davon zu trennen. Übrigens, dieses Ding hier zwischen diesen doppelten Anführungszeichen, Ja, ich weiß, es ist Text, aber es wird auch als String-Literal bezeichnet. Wenn wir nun ein Programm ausführen, sagen sie Mein Name ist Leerzeichen und dann der Name, den wir eingefügt haben. Aber lasst uns weitermachen und uns auch ein paar Funktionen für die String-Klasse ansehen . Also ganz schnell, lass uns weitermachen und ein paar Kommentare hinzufügen. Hier. Ich sage jetzt String zu mir. Genau hier, sage ich. Und dann unten sagen wir die Länge unseres Namens, einschließlich Leerzeichen. Und dann sagen wir hier unten die Pluralversion. Und ich zeige dir in einer Minute warum. Ordnung, also die erste Methode, werden wir weitermachen und sie als Längenmethode ausprobieren. Und wie gesagt, wir werden später im Kurs die Indoor-Methoden durchgehen . Also für den Moment, folge einfach mit, um zu sehen, wie sie funktionieren. Also sagen wir Name, der hier der eigentliche Name unserer Zeichenfolge ist , und dann sterben, auch bekannt als Mitgliedszugriffsoperator oder ein Punktsymbol. Und dann sagen wir Länge, alles Kleinbuchstaben, offene und schließende Klammern und ein Semikolon am Ende. Dann hier unten machen wir noch einen, indem wir Namen sagen. Diät, drücken Sie, alles in Kleinbuchstaben, unterstreichen Sie zurück und öffnen und schließen Sie dann Klammern und ein Semikolon am Ende. Und dann müssen wir in diese Klammern tatsächlich einen Charakter setzen. Und wenn wir mit der Maus darüber fahren, können Sie sehen, dass in den Klammern dort steht, dass es einen char-Wert annimmt. Also setzen wir einfache Anführungszeichen ein. Und dann ein S Einfach so, weil wir nur mit einem einzigen Charakter arbeiten. Wir haben die einfachen Anführungszeichen verwendet. Und jetzt wird es gedruckt, dass unser Name John Doe ist. Weil wir genau das hier getippt haben. Oder was auch immer Sie dort eingegeben haben, wird ausgedruckt. Und dann wird es die Länge unseres Namens sagen , einschließlich Leerzeichen. Ich werde gerade acht sein. Dann fügt diese Funktion hier tatsächlich ein S am Ende unserer Zeichenkette oder eines anderen Buchstabens hinzu, den wir hier eingeben. Das wird jedoch nichts bewirken. Wenn wir also unseren Code ausführen, wird es funktionieren. Und wie Sie sehen können, läuft es genauso wie ich zuvor. Das Problem ist, dass wir eigentlich alles mit diesen Werten machen. Obwohl ich jetzt die Länge habe, haben wir sie nicht auf der Konsole ausgedruckt. Also lasst uns weitermachen und das tun. Wir sagen CO, gefolgt vom Einfügeoperator und dann unserer Namenspunktlänge. Und das wird gut funktionieren. Wie Sie sehen können, gibt es John Doe und dann acht. Und wir können eine entsprechende neue Linie einschlagen , indem wir sagen, wie wir es in der Vergangenheit getan haben. Und noch ein Insertionsoperator, so. Und das wird das sofort bereinigen. Und dann hier unten können wir dieses Jahr tatsächlich ausdrucken, weil das alles tun, ist, unserem Namen hier ein S hinzuzufügen. Danach sagen wir CL, um eine neue Zeile zu erstellen. Und dann drucken wir unseren Namen aus. Stellen Sie sicher, dass Sie am Ende ein Semikolon setzen. Und wir führen unseren Code aus. Jetzt sagt Mein Name ist John Doe. Wir haben die Länge unseres Namens ausgedruckt, da diese Funktion hier als diesen Wert zurückgibt. Und wir sind in der Lage, diesen Wert genau hier und in unsere C-Out-Aussage zu setzen . Und dann haben wir hier unten eine andere Funktion ausprobiert , die Teil der String-Klasse war , mit der wir ein Zeichen am Ende unserer Zeichenkette hinzufügen können . Anstelle von John Doe heißt es also John Dos. Und wir hatten einen Ausdruck, der in einer separaten Zeile gedruckt wurde. So. Und wie ich schon sagte, mach dir jetzt keine Sorgen , dass du das alles runterkriegen musst. Ich wollte dir nur ein paar der Möglichkeiten zeigen , die es mit Strings gibt. Aber du wirst es in Zukunft nicht wissen müssen . Und wenn Sie interessiert sind, gerne die String-Klasse und einige ihrer anderen möglichen Funktionen nachschlagen. Das einzige, was Sie wirklich aus diesem Video mitnehmen müssen , ist das, wenn Sie mit einer Zeichenkette oder einem MP arbeiten , die String-Header-Datei mit dieser include-Anweisung oben einwerfen . Dann haben wir eine Zeichenkette genauso erstellt wie bei jedem anderen Variablentyp, außer dass wir angegeben haben, dass es eine Zeichenkette handelt und es sich nicht um eine Ganzzahl oder etwas Ähnliches handelt. Dann haben wir es genauso verwendet, wenn wir es mit einer anderen Variablen beim Ausdrucken tun würden. Und während wir hier sind, möchte ich Ihnen zeigen , dass wir sofort diesen Fehler erhalten, wenn wir versuchen , einen anderen Wert wie 54 oder etwas Ähnliches einzugeben , einen anderen Wert wie 54 oder etwas Ähnliches . Und es wird uns sagen, dass dies für diesen Datentyp nicht geeignet ist. Es ist also gut zu beachten, dass es dich nicht vermasseln lässt. Wenn Sie versuchen, den falschen Datentyp einzugeben. werden Sie sofort wissen lassen , dass es falsch ist, zumindest wenn es um etwas so drastisch anderes wie Strings und Ganzzahlen geht . Und was ich damit meine, darauf werden wir in einem zukünftigen Video hier eingehen, aber das wollten wir dir trotzdem zeigen, also das war's für dieses Video. Und von nun an bis zum Rest des Kurses wir einfach weitermachen und diese include-Anweisung für die String-Datei belassen . Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 14. Kapitel 3 (Variablen): Konstanten: In diesem Video werden wir über Konstanten sprechen. Jetzt ist eine Konstante im Grunde nur eine Variable. Du willst dich niemals ändern. Und Sie fragen sich vielleicht, warum sollte ich das tun? Nun, der Grund ist, dass Sie beim Programmieren alles tun möchten, um sicherzustellen , dass mit Ihrem Code nichts schief gehen kann, unter Berücksichtigung menschlicher Fehler. Nehmen wir zum Beispiel an, Sie haben um vier Uhr ein Programm gemacht und Sie wollten, dass diese Uhr weiß, dass eine Stunde 60 Minuten hat. Und das würde sich niemals ändern. Sie würden es zu einer konstanten Variablen machen wollen , sodass es keine Möglichkeit gibt , durcheinander zu bringen und den Rest Ihres Codes auf der ganzen Linie durcheinander zu bringen. Also, was wir tun werden, ist ein say const, ein Schlüsselwort, das darstellt, dass wir eine konstante Variable machen wollen , so dass ein CON als t. Und dann werden wir sagen, und dann sagen wir Minuten pro Stunde für die nenne dort. Und dann setzen wir das auf 60 und setzen am Ende ein Semikolon. Da hast du es. Wir haben jetzt eine konstante Variable erstellt, die nicht geändert werden kann. Sie können dies mit all den verschiedenen Variablentypen tun. Nun, Sie müssen dieses konstante Schlüsselwort vor den Datentyp setzen . Also im Grunde die Syntax oder die Regel zum Erstellen einer konstanten Variablen. Und Sie sagen const, gefolgt vom Datentyp, gefolgt vom Namen, dann der Zuweisung der Variablen. Geben Sie ihnen also den Zuweisungsoperator, gefolgt vom Wert. Nun, eine Sache, die bei Konstanten zu beachten ist, dass wir es nicht einfach so deklarieren können. Und dann später, sagen wir, Minuten pro Stunde sind gleich zehn. Zum Beispiel. Wenn ich hier mit der Maus über das Semikolon fahre, kannst du sehen, warum das so ist. Dies ist die Variable const. Minuten pro Stunde ist ein Initialisierer erforderlich. Wenn Sie eine konstante Variable erstellen wollen , die Sie niemals ändern möchten. Sie müssen es initialisieren und ihm den Wert geben , den Sie dauerhaft bleiben möchten, richtig, wenn Sie die Variable deklarieren. Anders als bei normalen Variablen können Sie also keine konstante Variable deklarieren und später initialisieren. Das ist alles, was ich auf genau derselben Linie haben muss. Also sagen wir, const int Minuten pro Stunde entspricht 60, einfach so. Und nur um Ihnen zu zeigen, dass wir das später nicht ändern können. Jetzt weiß ich, dass es momentan nicht nach einer sehr großen Sache aussieht . Aber wenn Sie anfangen, mit immer größeren Programmen zu arbeiten , die mehrere Codezeilen haben und mehrere Seiten umfassen können. Sie möchten sicherstellen, dass es keinen Weg gibt. Somit könnten Minuten pro Stunde geändert werden , da sie 60 sein müssen. Und vor allem, wenn wir eine Uhr herstellen, richtig, wenn diese bis zum Ende eines Monats oder eines Jahres auch nur eine einstellige Zahl entfernt ist . Wer auch immer die Uhr hier ist, wird verkorkst sein, richtig? Wir wollen also nur sicherstellen, dass wir es so schwierig wie möglich machen schwierig wie möglich unseren Code falsch zu verwenden. Und obwohl das Programm selbst nichts tun wird, sagen Sie ihm nicht, dass es es tun soll. Du willst menschliches Versagen zur Rechenschaft ziehen? Außerdem ist es nicht so schwer, einfach diese schnellen Keywords hinzuzufügen und sicherzustellen , dass dieser Wert dauerhaft ist. Und nur um dir das zu zeigen, wenn ich Minuten sagen würde, unser hier unten, und dann versuche, es auf etwa zehn zu setzen. Ich erhalte sofort eine Fehlermeldung, mir mitteilt, dass dies kein modifizierbarer Wert ist , da dies ein konstanter Wert ist. Wenn ich das entfernen würde, ist es nicht mehr konstant. Ich kann es ändern, was ich will. Also mache ich weiter und lege das zurück. Und wegen der Funktionsweise von Konstanten und aufgrund der Art und Weise, wie Code von oben nach unten gelesen wird, auch wenn ich mehrere Zeilen hatte , die es nicht schon in meinem Code durcheinander gebracht haben. Sobald ich dieses konstante Schlüsselwort dort eingegeben habe, wird alles, was versucht, diesen Wert anzupassen, als Fehler angezeigt, was mich wissen lässt, dass dies nicht möglich ist. Wenn es also etwas gab, das damit herumgespielt hat, bevor ich dieses const-Schlüsselwort eingeworfen habe, kann ich leicht auf alles zugreifen. Es wurde versucht, mit diesem Wert herumzuspielen. Und noch eine letzte Sache, bevor wir dieses Video beenden, möchte ich Ihnen nur zeigen , dass, obwohl dieser Wert konstant ist und wir ihn nicht ändern können, wir immer noch Zugriff auf den Wert haben , der als gelesen angesehen wird nur Wert. Du kannst es lesen, aber du kannst nicht darauf schreiben, du kannst dich nicht damit anlegen. Wenn wir also CL-Minuten pro Stunde sagen und dann unseren Code ausführen, können Sie sehen, dass wir diesen Wert immer noch sammeln können. Wir können immer noch erkennen, dass es 60 sind, aber wir können es einfach nicht ändern. Und da hast du es. Sie wissen jetzt alles , was Sie über Konstanten und Programmierung wissen müssen . Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 15. Kapitel 4 (Benutzereingabe): Cin User Input für die Cin: In diesem Video werde ich Ihnen endlich zeigen, wie wir tatsächlich Input vom Benutzer zurückbekommen können Input vom Benutzer zurückbekommen , anstatt sie nur an ihn zu senden. Lassen Sie uns zum Beispiel weitermachen und ein paar verschiedenen Informationen fragen Benutzer nach ein paar verschiedenen Informationen fragen und sie dann in der Konsole an ihn zurückdrucken. Also ganz schnell, ich werde nur ein paar Kommentare hinzufügen. Also fragen wir nach ihrem Vornamen. Dann fragen wir nach ihrem Nachnamen. Und zuletzt fragen wir nach ihrem Alter. Dann drucken wir ihnen das alles aus. Dies ist nur ein kurzes Beispiel für die Verwendung von Kommentaren, um den Code lesbarer zu machen. Aber wenn Sie tatsächlich anfangen, immer größere Programme zu schreiben , würde ich auf jeden Fall empfehlen viel detaillierter darauf einzugehen und wirklich aufzuschlüsseln , was jede Codezeile, wo jede funktioniert, wenn wir an diesem Punkt angelangt sind. Denn wenn Sie zurückkommen und sich Ihren Code ansehen, egal ob es Tage, Wochen, Monate oder sogar Jahre später sind, oder jemand, der Ihren Code noch nie zuvor gesehen hat, wird er sich ansehen. Es wird viel einfacher sein herauszufinden was hier oben vor sich geht. Lassen Sie uns weitermachen und ein paar Variablen zum Speichern ihrer Informationen erstellen . Also erstellen wir zuerst einen String zum Speichern des FirstNames. Also sagen wir String-Vorname. Dann setzen wir hier am Ende einfach ein Semikolon. Darunter sagen wir dann string lastName. Und darunter werden wir weitermachen und Alter sagen. Einfach so. Wir haben drei Variablen erstellt und sie gerade deklariert. Wir haben diesen und den Anfangswert nicht angegeben. Obwohl wir weitermachen und für jedes davon einen Anfangswert eingeben könnten , werde ich weitermachen und sie leer lassen, nur um Ihnen zu zeigen, dass wir den Benutzer dazu bringen können , einen Anfangswert einzugeben, anstatt setzen einen Anfangswert und erlauben ihnen einfach, ihn zu ändern. Genau hier sagen wir CL. Und dann wird in Anführungszeichen sagen, geben Sie Ihren Namen ein. Doppelpunkt. Einfach so. Ich setze hier kein Semikolon am Ende. Und dann unten werden wir diese Informationen vom Benutzer sammeln. Und um das zu tun, sagen wir c n. Dann zweimal das Größer-als-Zeichen, gefolgt von unserem Variablennamen, Vornamen und dann einem Semikolon am Ende, genau so. Während wir hier oben gesagt haben, dass wir Informationen an den Benutzer ausgeben sollen. Wir sagen C N, um Eingaben vom Benutzer zu erhalten. Und anstelle des Listenoperators wird dadurch etwas in das Programm oder die Konsole eingefügt . In diesem Fall verwenden wir den Extraktionsoperator, um etwas aus unserem Programm zurück in unseren Code zu extrahieren. Die zwei Kleiner-als-Symbole als Einfügeoperator und die beiden Größer-als-Symbole sind also und die beiden Größer-als-Symbole der Extraktionsoperator. Und anstatt Informationen auszugeben, erhielten wir Informationen. Jetzt persönlich stelle ich mir diese Einführ- und Extraktionsoperatoren gerne als Pfeile vor. Und stell dir vor, mein Programm ist irgendwo hier draußen. Also gebe ich Informationen in mein Programm aus und füge sie auf diese Weise wieder dort ein, wo mein Code ist. Das ist also eine Möglichkeit, es zu betrachten, wenn dir das hilft. Großartig. Wenn wir also jetzt unser Programm ausführen, heißt es, gib deinen Vornamen ein. Unser Cursor in der Konsole wird genau hier landen. Und sie können ihren Vornamen eingeben. Und wenn der Benutzer dann die Eingabetaste drückt, fügt er seinen Text tatsächlich in das Programm ein. Also bekommen wir die Informationen tatsächlich zurück. Und das ist irgendwie genauso mit unserer Get-Methode hier unten. Und auf diese Weise vertraue oder drücke die Eingabetaste. Sobald der Benutzer die Eingabetaste drückt, können wir tatsächlich Informationen von ihm zurückerhalten. Und dann wird alles ausgeführt. Also genau hier sagen wir, gib deinen Vornamen ein. Sie können eingeben, was sie wollen, und dann die Eingabetaste drücken. Und diese Information oder diese Zeichenfolge wird genau hier in unserer FirstName-Zeichenfolge gespeichert. Aber wir müssen es immer noch an den Benutzer zurücktippen oder etwas damit machen. Andernfalls wird es einfach hier in der Variablen stehen und wir haben es nie wirklich verwendet. Und das wird es gleich hier unten tun. Aber zuerst wollen wir weitermachen und eine leere Zeile erstellen. Also sagen wir einfach CO. Und einfach so, lass uns weitermachen und das hier unten einfügen. Da wir so ziemlich dasselbe tun werden , um ihren Nachnamen zu erhalten, außer dass wir anstelle von FirstName lastName sagen, was der Name unserer anderen Variablen ist. Und hier oben sagen wir, gib deinen Nachnamen ein. Dann, nur damit nicht alle unsere Texte gebündelt sind. Lass uns weitermachen und eine weitere Leerzeile hinzufügen. Also habe ich das nicht rückgängig gemacht. Ich werde einfach einen anderen Insertionsoperator einsetzen und online sagen. Und ich mache das Gleiche. Dann lass uns weitermachen und das alles noch einmal kopieren und es gleich hier unten einfügen. Dann sagen wir, gib dein Alter ein. Dann die Informationen , die sie eingeben. Wir wollten in unsere Zeit gehen. Ordnung, und stellen Sie sicher, dass Sie, wenn wir zu diesem Teil eines Programms kommen, tatsächlich eine ganze Zahl eingeben. Denn im Moment haben wir keine Möglichkeit zu überprüfen, ob sie tatsächlich eine ganze Zahl eingeben oder eine ganzzahlige Variable kann nur eine ganze Zahl enthalten. Um Probleme oder Fehler zu vermeiden, einfach sicher, dass Sie eine ganze Zahl eingeben . Wenn nicht, können Sie es jederzeit schließen und Ihr Programm erneut ausführen. Später in diesem Kurs werden wir uns damit befassen, wie wir nach verschiedenen Bedingungen suchen können. Aber im Moment werden wir nur sicherstellen , dass wir alles richtig machen. Dann drucken wir ihren vollständigen Namen und ihr Alter aus. Also lass uns weitermachen und CL sagen. Dein Name ist so ein Raum. Und dann werfen wir einen weiteren Einfügeoperator ein. Und wir sagen FirstName, gefolgt von einem weiteren Einfügeoperator mit doppelten Anführungszeichen darin. Also noch ein Insertionsoperator und sag, in Ordnung, und dann unten darunter sagen wir Ischiaslinie. Ein weiterer Insertionsoperator. Und wir sagen, Ihr Alter ist der Colon Space, ein weiterer Insertionsoperator. Und dann geh minderjährig durch. Was für ein Semikolon am Ende. Lass mich hier rauszoomen, damit ihr sichergehen könnt, dass euer gesamter Code mit meinem übereinstimmt. Dann machen wir weiter und führen das Programm aus. Geben wir also den Vornamen ein, geben Sie ein, was immer Sie wollen, und drücken Sie die Eingabetaste. Es wird nach unserem Nachnamen fragen. Beachten Sie jetzt, dass es gezählt hat, wenn wir nach der Eingabe Ihres Namens die Eingabetaste gedrückt haben. Das geht in die nächste Zeile. Also dann ging diese Endlinie hier noch einmal runter und die nächste ging noch einmal runter. Es gibt also eigentlich zwei Leerzeichen. Wenn wir das also bereinigen wollen, können wir tatsächlich einfach eine dieser n Zeilen von jeder dieser Zeilen entfernen . Ansonsten denke ich, dass es genauso gut aussieht wie es ist. Ich wollte dich nur darauf aufmerksam machen. Geben Sie dann alles ein, was Sie für den Nachnamen möchten, und geben Sie erneut ein. Dann frage ich nach h. Ich tippe eine ganze Zahl ein. Kann alles sein, was du willst, ist wirklich egal. Und drücken Sie erneut die Eingabetaste. Und es wird das Programm beenden. Und Sie fragen sich vielleicht, warum sofort geschlossen wurde. Der Grund dafür ist, dass wir hier am Ende Enter gedrückt haben. Es zählte das tatsächlich als Teil des Sündensterbens. Also was wir tun werden, ist das einfach zu kopieren und es noch einmal einzufügen. Also führe das Programm erneut aus und fasse einfach unsere Sachen zusammen. Und da hast du es. Also und das ist für Vorname, Typ, was auch immer wir als ihren Nachnamen wollen, trenne alle. Was dein H betrifft, dasselbe. Stellen Sie einfach sicher, dass es sich um eine ganze Zahl handelt, da diese in einer Ganzzahl gespeichert wird . Denken Sie daran, wir hätten das einfach in eine Zeichenkette schreiben können und es würde einwandfrei funktionieren. Dann drucken wir es zurück an den Benutzer. Ihr Name ist und auf Ihr Alter folgen ihr Name und Alter. Und nur um Ihnen zu zeigen, dass dies als String funktionieren würde, setze ich die Zeichenfolge genau dort ein und führe das Programm aus. Und wie Sie sehen können, hat es einwandfrei funktioniert. Aber ich wollte Ihnen nur zeigen, dass Sie verschiedene Variablentypen vom Benutzer sammeln können . Es muss kein String sein. Hoffentlich hast du hier etwas gelernt. Wenn Sie überhaupt verwirrt sind, empfehle ich Ihnen dringend, zurückzugehen und das Video erneut anzusehen. Und wenn Sie es immer noch nicht herausfinden können und es mich einfach unten im Diskussionsbereich unten wissen lassen , melde ich mich so schnell wie möglich bei Ihnen. Aber mach dir keine Sorgen, wenn du das Gefühl hast, dass du es hast, aber du willst trotzdem ein bisschen mehr Übung haben und wir werden des gesamten Kurses eine Menge mit solchen Dingen machen . Also wie dem auch sei, danke fürs Zuschauen und wir sehen uns beim nächsten. 16. Kapitel 4 (Benutzereingabe): Funktionen von Getchar und Getline: Wie gehts zusammen? In diesem Video möchten wir den Benutzer nach seinem vollständigen Namen fragen , ihn in einer Variablen speichern und ihn an ihn zurückdrucken. Du denkst vielleicht, hey, ist es nicht das, was wir gerade im letzten Video gemacht haben? Nun, und irgendwie, aber in diesem Video werden wir ein paar neue Methoden verwenden. Also wollte ich bei etwas bleiben, das dir bereits vertraut war. Wir stellen etwas Neues vor. Also machen wir weiter und erstellen hier einen String. Und wir nennen es vollen Namen. Einfach so. Und wir werden es einfach deklarieren. Wir werden nichts reinstecken. Dann. Wir werden den Benutzer nach seinem vollständigen Namen fragen. Also mach weiter und sag C raus. Und dann wird in Anführungszeichen gesagt Bitte nimm den Doppelpunkt am Ende. Und dann hier unten drucken wir ihren vollen Namen aus. Vergiss dort nicht dein Semikolon am Ende. Also sag CL. Und dann setzen wir in Anführungszeichen den Backslash n und sagen Ihren vollen Namen. Doppelpunkt, einfach so. Und dann werfen wir einen weiteren Einfügeoperator in gedruckter Form ein, vollständigen Namen , den sie uns gegeben haben. Im letzten Video haben wir nun Sünde gesagt, um ihren vollen Namen zu sammeln. Machen wir weiter und machen das noch einmal. Nur um dir etwas zu zeigen. Ihr werdet das einfach rausnehmen. Also sagen wir Cin, Name. Und nachdem wir ihren vollständigen Namen ausgedruckt haben, setzen Sie hier eine weitere N-Zeile ein. Einfach so. Und du wirst gleich sehen, warum ich das hier hingelegt habe. Nun, je nachdem, welches Programm Sie verwenden, Es sollte eine Möglichkeit geben, Ihren Code auszuführen, ohne im Wesentlichen zu debuggen oder nach Fehlern zu suchen. Und in Visual Studio können Sie entweder Control plus F5 drücken oder einfach diese leere Plattenbindung hier oben treffen. Und unabhängig davon, welches Programm Sie verwenden, Es sollte eine Option geben, mit der Sie Ihren Code ohne Debugging ausführen können. Aber wenn nicht, können Sie einfach den Sendai-Code nehmen. Kopieren Sie es einfach und fügen Sie es ein paar Mal ein und Sie sollten den gleichen Effekt erzielen. Möglicherweise müssen Sie nur noch ein paar Begriffe eingeben, den Vorgang beenden oder das X oben in Ihrem Programm drücken. Aber ich werde einfach den dort platzieren, den ich während des gesamten Kurses hatte , und ohne Debugging laufen. Und der Grund dafür ist etwas komplizierter , als ich im Moment darauf eingehen möchte. Aber im Moment versuchen Sie einfach, Ihren Code auszuführen, ohne zu debuggen oder kopieren Sie diese Zeile und fügen Sie sie mehrmals hier ein und alles wird gut. Wenn wir also unseren Code ausführen, heißt es: Bitte geben Sie Ihren vollständigen Namen ein. Nehmen Sie zum Beispiel John Doe. Und dann wirst du feststellen, dass es nur heißt Mein voller Name ist John. Und dann wurde ich gebeten, eine beliebige Taste zu drücken, um fortzufahren. Und das liegt an Visual Studio, zumindest wenn Sie Ihren Code ohne Debugging ausführen, wird er nicht automatisch geschlossen. Warum steht da einfach John? Nun, da aufgrund dieses Sündenobjekts hier , das wir verwenden, um Eingaben vom Benutzer zu erhalten, die Aufzeichnung von Informationen tatsächlich beendet wird, Aufzeichnung von Informationen tatsächlich beendet wird sobald wir diesen Bereich hier platziert haben. Deshalb hieß es, sobald wir mit dem Tippen von Jon fertig waren , im Grunde: Okay, ich bin nur John, genau hier für den vollständigen Namen. Aber was wäre, wenn wir alles sammeln wollten , einschließlich des Raums? Nun, wir können eine neue Funktion namens getline-Funktion verwenden. Lassen Sie uns jetzt einfach weitermachen und diese Zeile hier auskommentieren , damit wir sie immer noch sehen können, aber sie wird unseren Code nicht wirklich beeinflussen. Also direkt unter unserer cin-Anweisung, die wir hatten, sagen wir getline und alle offenen Klammern in Kleinbuchstaben, gefolgt von sin oder C, Komma, Leerzeichen, gefolgt vom Namen unserer Variablen alle offenen Klammern in Kleinbuchstaben, gefolgt von sin oder C, Komma, Leerzeichen, gefolgt vom Namen unserer Variablen vollständiger Name, enge Klammern und ein Semikolon am Ende. Einfach so. Was wir jetzt tun, ist, dass wir die Informationen, die wir von unserer getline-Funktion erhalten , hier in den vollständigen Namen der Variablen eingeben. Im Gegensatz zu unserer letzten Anweisung hier, die Informationen aufgezeichnet und in eine Variable gesetzt hat bis wir die Leertaste oder die Eingabetaste drücken, erhalten Sie also die Zeilenfunktion oder eine Methode, die hier gesammelt wird , bis wir die Enter-Taste drücken. Es wird also alles in dieser Zeile auswählen. Jetzt führen wir unseren Code aus, wir können tatsächlich unseren vollständigen Namen eingeben. Und es wird unseren vollen Namen zurückdrucken. Und dann ganz schnell, ich habe eine letzte Methode, die ich dir zeigen kann. Kommentieren wir also unsere getline-Methode , die wir gerade verwendet haben. Und darunter sagen wir, dass fullname gleich getchar ist, alle kleingeschriebenen, offenen und schließenden Klammern und ein Semikolon am Ende. Mit dieser Methode oder Funktion wird hier nur das nächste Zeichen eingegeben. Und ich zeige Ihnen , wie das funktioniert, dann fahren Sie fort und fahren Sie Ihr Programm herunter, ohne erneut zu debuggen. Denken Sie daran, wenn er das aus irgendeinem Grund nicht kann, kopieren Sie einfach die Sündenpunkt-Getline und fügen Sie sie ein paar Mal ein. Sie können das Programm jederzeit manuell beenden. Geben Sie einfach Ihren vollständigen Namen ein, machen Sie weiter und geben Sie ein, was Sie wollen. Drücken Sie die Eingabetaste. Du wirst feststellen, dass es nur den ersten Charakter braucht. Also machten wir weiter und tippten sie ein, was wir wollen. Sobald wir dann die Eingabetaste drücken, wird alles, was wir eingegeben haben, tatsächlich in das Programm eingefügt. Es speichert nur diesen ersten Brief, weil wir ihm das gesagt haben und ihn uns wieder ausgedruckt haben. Da hast du es. Ja. Jedes Mal, wenn wir mit der Konsole arbeiten, könnt ihr buchstäblich tippen wollt, und es wird nichts bewirken. Da Sie alles, was Sie eingegeben haben, bei ihnen hatten , wird es tatsächlich in das Programm aufgenommen , das wir hier ausführen. Und dann macht es das, was Sie ihm gesagt haben , mit diesen Informationen. Wie auch immer, das ist es für dieses Video, ich wollte Ihnen hier nur diese zusätzlichen Methoden zeigen , die Sie verwenden können, wenn Sie Benutzereingaben erhalten. Nun, die Funktion get char hier ist vielleicht die meiste Zeit nicht besonders nützlich für Sie, aber es wird definitiv mehrere Male geben diese Getline-Funktion wird sich definitiv als nützlich erweisen. Und es gibt tatsächlich andere Möglichkeiten, diese Methode zu verwenden , die Sie bei Interesse online nachschlagen können . Aber im Moment ist dies die grundlegende und die am wahrscheinlichsten am häufigsten verwendet wird. Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 17. Kapitel 4 (Benutzereingabe): Zeichenkette zum Int: In diesem Video zeige ich Ihnen, wie wir eine Zeichenfolge in eine Zahl konvertieren können und wie wir das Gegenteil der Konvertierung einer Zahl in eine Zeichenfolge tun können . Also lasst uns darauf eingehen. Jetzt habe ich ein paar verschiedene Methoden, die Sie verwenden können. Zeig dir einfach, dass es da draußen eine Handvoll gibt. Und es gibt tatsächlich viel mehr als nur die drei , die ich aufgelistet habe, aber wir verwenden diesen ersten nur als Beispiel. Also lasst uns weitermachen und eine Ganzzahl erstellen. Wir sagen, Zahl ist gleich fünf. Dann unten wird tatsächlich eine String-Variable erstellt. Wir sagen String, geschriebene Zahl ist gleich. Wir setzen diese Zehn in doppelte Anführungszeichen , weil wir wollen, dass es eine Zeichenfolge ist. Also unten werden wir weitermachen und unsere Ganzzahl ausdrucken. Also sagen wir C raus. Darunter wird dann eine leere Zeile erstellt. Und darunter werden wir weitermachen und unsere Zeichenkette in eine Zahl umwandeln. Wie können wir also sicherstellen, dass das funktioniert? Zuerst sagen wir, dass Zahl dort unsere Ganzzahl ist. Und dann werden wir es gleich setzen. Dann werden wir hier eine neue Methode anwenden. Also sagen wir S, T, O und alle Kleinbuchstaben in Klammern. Wir geben den Namen unserer Saite ein. Also sagen wir rote Zahl, schließen die Klammern und setzen ein Semikolon am Ende. Stellen Sie also sicher, dass es zu meinem hier passt. Also erstellen wir zuerst eine Ganzzahl namens Zahlen, so dass die Fünf. Dann haben wir eine Zeichenfolge namens random number erstellt und sie auf eine Zeichenkette gesetzt , die nur die Zahl zehn enthält, nichts extra. Und dann unten haben wir die Nummer ausgedruckt, die Zeile übersprungen oder eine Zeile hinuntergegangen, sollte ich sagen. Und dann setzen wir die Zahl gleich der geschriebenen Zahl, die zehn sein sollte. Und wir haben das mit dieser Methode gemacht, die S genannt wird, zu kurz für String zu Integer, oder? Weil wir diese Zeichenkette in eine Ganzzahl konvertieren wollen , damit wir unsere aktuelle Ganzzahl gleich setzen können . Dann erstellen wir eine weitere Leerzeile. Und wir werden auch wieder die Nummer ausdrucken. Übrigens empfehle ich für den Rest des Kurses, einfach Ihren Code auszuführen, ohne ihn zu debuggen. Und wenn Sie in Visual Studio sind, denken Sie daran, dass Sie einfach die Strg-Taste gedrückt halten und F5 drücken können. Und wie Sie sehen können, sagten wir fünf, dann zehn. Obwohl wir die Ganzzahl gerade zweimal ausgedruckt haben. Weil wir diese Zahl hier in unserer Zeichenkette in eine Ganzzahl umwandeln können. Übrigens, für diejenigen unter Ihnen in Visual Studio können Sie jederzeit diese Taste oben drücken, wenn es schwierig ist, die Kontrolle zu halten und eine Fünf zu steuern wenn es schwierig ist, die Kontrolle zu halten und eine Fünf zu steuern. Oder wenn Sie wirklich möchten, können Sie zu Tools, Optionen gehen und zum Debuggen gehen. Allgemeines. Ganz unten. Deaktivieren Sie einfach das Kästchen, das wir im zweiten Video angekreuzt haben. Dadurch wird die Konsole automatisch geschlossen , wenn das Debuggen beendet wird. Andernfalls können Sie es jederzeit aktiviert lassen und dann stehen Ihnen beide Optionen jederzeit zur Verfügung. Und das ist nützlich, denn wenn Sie Ihr Programm tatsächlich an jemanden senden, um es zu verwenden, bleibt es nicht einfach geöffnet wie in Visual Studio. Es ist also schön, beide Optionen haben zu können. Aber während Sie nur programmieren und üben und lernen, können Sie einfach weitermachen und das Häkchen entfernen und auf Okay klicken. Und wir warten darauf, dass Sie eine Taste drücken bevor Sie das Programm schließen, auch wenn Sie es mit eingeschaltetem Debugging ausführen , indem Sie einfach F5 drücken. Und Sie können weitermachen und diesen Sündenpunkt entfernen , wenn Sie sich dafür entscheiden , und ich habe wirklich nur die für Leute hier, die sie vielleicht brauchen. Das nächste, was wir tun werden, ist eine Zahl in eine Zeichenkette zu konvertieren. Nun, wie machen wir das? Anstatt also Nummer fünf hier in diese Zahl zu konvertieren , die zehn ist, indem wir unsere Zeichenkette in ein Ende konvertieren, wie wir es hier oben getan haben. Lassen Sie uns einfach weitermachen und diese beiden Zeilen kommentieren . Übrigens, für diejenigen unter Ihnen in Visual Studio können Sie einfach die Zeilen markieren, die Sie auskommentieren möchten , und dann auf diese Schaltfläche hier oben klicken und alle Zeilen herauskommen , die ausgewählt werden. Und wenn Sie sie jemals auskommentieren möchten, können Sie einfach auf das Symbol direkt daneben klicken , einfach so. Also werden wir weitermachen und diese kommentieren. Im Moment haben wir also zwei Variablen erstellt und Zahlen ausgedruckt. Und dann sind wir eine Linie gegangen. Also hier unten werden wir eigentlich das Gegenteil tun. Wir wandeln unsere Zahl von 5 Jahren in eine Zeichenfolge um. Um das zu tun, wir weiter und sagen dass die britische Nummer unser Zeichenfolgename ist. Entspricht und dann allen Kleinbuchstaben, Unterstrich-String, wieder alles Kleinbuchstaben. Und dann setzen wir in Klammern unsere Ganzzahl ein. Also sagen wir einfach Zahl, gefolgt von engen Klammern und einem Semikolon am Ende. Also was wird es bewirken? Es wird anfangen, Zahl zu lesen, die unsere Zeichenfolge , die dem Zeichenfolgenwert unserer Zahl entspricht. Also im Grunde das Gegenteil von dem, was wir hier oben gemacht haben, aber stattdessen verwenden wir diese Zwei-String-Methode , die dieses Jahr in eine Zeichenkette konvertiert. Jetzt müssen wir das nur noch ausdrucken , damit wir das Ergebnis davon tatsächlich sehen können. Also sagen wir C raus. Und dann geschriebene Nummer. Wenn unser Programm jetzt fünf zweimal neu druckt, einmal aus unserer eigentlichen Integer-Variablen, die Zahl ist, und einmal aus unserer Zeichenkette, die jetzt gleich fünf ist, da die Zahl gleich war. Nun, jetzt wissen Sie, wie man eine Zeichenkette eine Ganzzahl konvertiert und wie man eine Ganzzahl in eine Zeichenkette konvertiert. Und die Anwendungsfälle dafür werden deutlicher, wenn wir den Kurs fortsetzen und uns mit komplizierterem Code befassen. Wie auch immer, das war's für dieses Video und das nächste Video, wir werden anfangen mit einigen grundlegenden Arithmetiken zu arbeiten. Also danke fürs Zuschauen und wir sehen uns im nächsten. 18. Kapitel 5 (Operatoren): Grundlegende Arithmetik: In diesem Video werden wir einige grundlegende Arithmetik in der Programmierung durchgehen . Das erste, was wir tun werden, ist ein paar Integer-Variablen zu erstellen. Also lasst uns weitermachen und sagen, dass int num eins gleich fünf ist. Darunter werden wir sagen, dass int num zwei gleich zehn ist. Dann werden wir eine weitere ganzzahlige Variable erstellen, die das Ergebnis jeder Mathematik enthalten wird, die wir in Zukunft hier machen. Also sage ich, das Ergebnis ist gleich, und setzen wir es vorerst einfach auf 0. Denken Sie daran, wir könnten es einfach deklarieren, wenn wir wollten, aber lassen Sie uns einfach weitermachen und es initialisieren. Dann hier unten werden wir weitermachen und etwas rechnen. Jetzt funktioniert Mathe in C plus plus genauso. Es hat nichts damit zu tun. Zur Multiplikation. Sie werden tatsächlich die Sternchensymbol-Division verwenden . Sie verwenden einen Schrägstrich, Addition, ein Pluszeichen und eine Subtraktion. Das Subtraktionssymbol, ebenfalls C plus plus, folgt der gleichen Reihenfolge von Operationen, die Sie bei diesen vier hier gewohnt sind. Und es gibt auch einige andere Symbole und verschiedene Dinge, die Sie tun können und die ebenfalls in die Tabelle der Operationen fallen. Wenn Sie also vorhaben, in der Programmierung etwas Ernstes mit Mathematik zu machen , empfehle ich dringend, einen Blick auf die C plus mathematische Tabelle für Operationen zu werfen und einfach zu sehen, wie das alles funktioniert. Wie auch immer, lass uns weitermachen und hier eine grundlegende Ergänzung machen. Wir sagen also, Ergebnis ist gleich num eins plus num zwei. Übrigens können Sie sogar eine Variable gleich einer anderen Variablen setzen. Wenn ich also sage, Ergebnis ist gleich num, eins, wäre das Ergebnis gleich fünf. Aber wir sind hier, wir sagen Nummer eins plus Nummer zwei, was 15 sein sollte. Wir können das testen, indem wir c out sagen. Führen Sie unseren Code aus. Und los geht's. Und nur um Ihnen zu zeigen , dass dies der richtigen Reihenfolge der Operationen folgt , und sagen Sie, multiplizieren Sie gleich hier nach einem M zwei mal zwei. Wenn dies also von links nach rechts gelesen würde, wäre es eine Fünf plus Zehn, was 15 mal zehn wäre, wenn Sie 50 wollen. Da dies jedoch der gleichen Reihenfolge der Operationen folgt, wir es gewohnt sind, wird zuerst die Multiplikation durchgeführt. Es wird also tatsächlich zehn mal zehn sein, das sind 100, plus fünf, was 105 entspricht. Und wenn wir unser Programm hier ausführen, können Sie sehen, dass dies der Fall ist. Und falls Sie neugierig auf die Mathematik waren, können Sie sagen, dass das Ergebnis den Ergebniszeiten entspricht. Bis jetzt heißt es, dass das Ergebnis 0 ist. Wir wollen gleich Zahl eins setzen, Zahl zwei, von der wir wissen, dass sie 15 sein wird. Dann hier unten werden wir das Ergebnis sagen, das 15 entspricht dem Ergebnis dass 15 wieder mal Zahl bis zehn ist, es sollte 1 Fünftel enden. Dann drucken wir es aus. Und los geht's. Also los geht's. Sie wissen jetzt, wie man in C plus plus einige grundlegende Mathematik macht. Und wenn wir wollten, könnten wir sogar den Benutzer nach diesen Nummern fragen. Anstatt diese beispielsweise hier einzurichten, kann ich das entfernen. Und wir lassen unser Ergebnis einfach gleich 0, um zu beginnen. Und dann sagen wir hier unten, dass das Ergebnis gleich num1 plus num2 ist. Aber kurz davor werden wir es sehen. Dann wird in Anführungszeichen Typ gesagt. Person Nummer zwei. Flow hinzugefügt , der C wieder aussagt. Zweite Bestellung hinzugefügt. Und dann müssen wir dazwischen CAN eins für den ersten dort sagen . Und darunter haben wir zwei Integer-Variablen deklariert. Wir haben eine Ergebnisvariable deklariert und initialisiert. Dann drucken wir es aus und wir möchten, dass der Benutzer die erste Nummer eingibt, die hinzugefügt werden soll. Und ich werde tatsächlich weitermachen und hier ein Doppelpunkt-Leerzeichen einfügen, damit es ein bisschen schöner aussieht , als wenn sie einmal ihre erste Zahl nehmen und die Eingabetaste drücken. Sie werden nach einer zweiten Nummer gefragt. Und wenn wir wollen, können wir einfach so eine neue Linie einbauen. Dann können sie ihre zweite Nummer eingeben und die Eingabetaste drücken. Und dann, genau hier unten, wird es automatisch weitergehen und diese beiden Zahlen addieren. Und ganz unten können wir so etwas sagen. C raus und dann Anführungszeichen und setze eine neue Zeile ein. Wir sagen, das Ergebnis ist ein solcher Doppelpunkt. Stellen Sie sicher, dass sie am Ende ein Semikolon sind. Und bevor ich es vergesse, setze ich hier den Doppelpunkt und das Leerzeichen ein. Nachdem wir auch nach der zweiten Nummer gefragt haben, führen wir unseren Code aus. Denken Sie daran, dies ohne Debugging zu tun. Ich möchte nicht einfach 105 sagen oder Sie können hier die Zahlen eingeben, die Sie möchten , um Ihr Ergebnis zu erhalten. Für mich heißt es also, dass mein Ergebnis 15 war. Und los geht's. Und dann wenn ich das noch mehr bereinigen wollte , weil mein Anwalt mich gebeten hat einen Knopf zu drücken, bevor ich fortfahre. Ich könnte am Ende einfach so in einer neuen Zeile auftauchen. Und das wird gut laufen. Und los geht's. Es sieht ziemlich gut aus. Wie dem auch sei, das war's für dieses Video. Im nächsten Video zeige ich Ihnen ein paar zusätzliche Operatoren. Also danke fürs Zuschauen und wir sehen uns im nächsten. 19. Kapitel 5 (Betreiber): Inkrement und Decrement: In diesem Video zeige ich Ihnen ein paar neue Operatoren, die Sie vielleicht noch nie gesehen haben. Diese sind jedoch in Programmiersprachen ziemlich häufig. Der erste ist also dass der Inkrementoperator aus zwei Plus-Symbolen besteht. Es wurde einfach eines zu dem hinzugefügt, auf dem Sie es verwenden. Im Dekrementoperator, einfach heißt , subtrahieren einen von dem, wofür Sie ihn verwenden. Lassen Sie mich Ihnen zeigen, wie diese funktionieren. Zuerst erstellen wir eine Integer-Variable. Also sagen wir einfach, dass int num eins gleich fünf ist. Darunter werden wir weitermachen und diese Operatoren tatsächlich verwenden. Lassen Sie uns als Beispiel einfach den Inkrementoperator verwenden. Um das zu tun. Wir sagen ein Plus und dann ein Semikolon am Ende. Und da hast du es. Es wird jetzt eins zu Nummer eins und die Schultern zu dir hinzufügen . Wir werden weitermachen und Nummer eins ausdrucken. Num eins, einfach so und führe unser Programm aus. Wie Sie sehen können, heißt es Sex. Und wenn wir hier das Gegenteil tun und minus, minus sagen und unser Programm erneut ausführen würden. Es wird vorerst sagen, dies genau das Gleiche ist, als ob wir Folgendes getan hätten. Also werde ich das schnell kommentieren und einfach Nummer eins sagen. Num eins minus eins. Einfach so. Und wenn ich, wie Sie sehen können, wieder gehe , wenn ich ein Plus gesetzt hätte, hätte ich sechs geschickt. Wie Sie sehen können, ist es genau dasselbe. Es ist einfach viel schneller und viel sauberer, Nummer eins minus, minus oder plus zu sagen . Dann ist num eins gleich 91 und dann plus oder minus und dann eins. Und oft müssen Sie einfach etwas subtrahieren oder zu etwas addieren, insbesondere beim Programmieren. Das ist ein weiterer Grund, warum dies für Sie verfügbar ist und warum es ein gutes Werkzeug ist. Eine weitere Sache, die ich Ihnen zeigen möchte , ist, dass Sie diese Operatoren tatsächlich auf die andere Seite der Variablen setzen diese Operatoren tatsächlich auf die andere Seite der können und es tatsächlich etwas anderes macht. Wenn wir also weitermachen und die gerade erstellte Zeile löschen und dann auskommentieren oder eine mit dem Dekrementoperator dort auskommentieren oder nummerieren. Wenn ich das Minus, Minus auf die andere Seite oder den Dekrement-Operator setze und unseren Code ausführe, wird dasselbe ausgegeben. Du denkst vielleicht, oh, dann funktioniert es genauso, aber tatsächlich passiert hier etwas anderes. Und ich kann dir zeigen, was das ist. Also lass uns weitermachen und eine weitere Variable erstellen. Wir nennen das Zahl zwei und setzen es gleich. Ebenfalls. Nur um Ihnen schnell etwas zu zeigen, während wir hier sind, nur für den Fall, dass Sie es woanders sehen, können Sie Folgendes tun. Anstatt zu sagen, dass int num zwei gleich fünf ist, könnten Sie einfach int num zwei sagen, und dann in Klammern könnten Sie fünf haben. Und das ist genau das Gleiche. Sie könnten es auch in geschweiften Klammern sehen, so. Das ist auch genau das Gleiche, als ob ich gerade gesagt hätte, dass Zahl zwei gleich fünf ist. Ich will dir das nur zeigen, falls du es siehst. Aber ich persönlich finde es weniger förderfähig und sehe es nicht oft. Also sage ich einfach, dass meine Variable gleich was auch immer ist. Okay? Also werde ich einfach weitermachen und sagen dass Nummer zwei vorerst 0 ist. Wenn Sie sich erinnern, hatten wir hier unten r minus minus und dann num eins, anstatt unseren Operator auf die andere Seite zu stellen. Und als wir unseren Code ausgeführt haben, hat er genau das Gleiche gemacht wie zuvor. eine von unserer Variablen num eins subtrahiert und dann haben wir sie ausgedruckt. Aber das ist eigentlich anders. Und Sie fragen sich vielleicht, wie ist es anders? Nun, hier unten, wenn ich sage, num zwei ist gleich minus, minus Zahl eins, und dann drucke ich tatsächlich Nummer zwei aus und wir führen unseren Code aus. Es wird so aussehen, du hast es kurz zuvor gesehen , weil ich vier war. Aber wenn wir das tatsächlich wieder auf die andere Seite legen, werden Sie sehen, was der Unterschied ist. Also, wenn wir das wieder löschen und auf die andere Seite verschieben , wo wir es ursprünglich hatten , und unseren Code ausführen. Es wird eigentlich fünf heißen. Und wenn wir hier unten Nummer eins ausdrucken, schreibe ich das in eine neue Zeile, nur damit es ein bisschen lesbarer ist. Wenn ich dann einen Code ausführe, kannst du sehen, dass er als Nummer eins ausgedruckt wird. Und dann wird es fünf ausdrucken, was Nummer zwei ist. Warum ist das so? Nun, lass es mich dir sagen. Also wird num eins minus minus eins von num eins subtrahieren. Nummer eins wird dem Ergebnis davon entsprechen. Also ist num eins gleich vier, aber es gibt tatsächlich den Wert zurück , bevor diese Operation ausgeführt wird. Es ist also im Grunde dasselbe, als ob wir sagen würden, dass num zwei gleich num eins ist. Und Sie können es so betrachten, wenn wir das hier nur bis zum Ende unseres Num One Variablennamens hervorheben , es heißt im Grunde nur, dass num zwei gleich num eins ist. Und danach passiert diese Operation und wir haben das Ergebnis ausgedruckt. Aber wenn wir das auf die andere Seite verschieben und dann hervorheben, dass derselbe Bereich bis hin zu Nummer eins taub ist. Sie können sehen, dass die Operation darin stattfindet. Und die Operation findet tatsächlich zuerst hier statt. Jetzt heißt es also, dass num zwei gleich was auch immer das Ergebnis dieser Operation ist, num eins wird immer noch subtrahiert. Also lasst uns weitermachen und sehen, wie das aussieht. Wenn wir also unseren Code erneut ausführen, können Sie sehen, dass wir hier gesagt haben, dass num eins gleich fünf ist, m2 ist gleich 0. Und dann war Zahl zwei gleich dem Ergebnis dieser Operation, die für num eins minus eins gleich vier war. Wenn wir dann Nummer eins ausdrucken, hat es auch vier, weil wir immer noch eins von Nummer eins subtrahiert haben. Also Nummer eins ist jetzt vier und M2 ist gleich dem für diejenigen auf der anderen Seite. Denken Sie noch einmal daran, dass wir sie darum bitten, gleich Nummer eins zu sein und dann die Operation danach stattfindet, okay? Da hast du es also. Hoffentlich wissen Sie jetzt, wie man die Inkrement- und Dekrementoperatoren verwendet . Und wenn Sie es nicht vollständig verstehen, ist das in Ordnung. Wir werden es später während des gesamten Kurses wieder verwenden. Aber wirklich, Das einzige, was Sie daraus nehmen müssen , ist, dass der Plus-Plus-Operator oder der Inkrementoperator dasselbe ist, als zu sagen, dass num1 gleich num eins plus eins ist. Also das hier, das hier ist genau das Gleiche. gleiche wäre, wenn ich minus n, minus eins sagen würde. Wenn Sie dies jedoch in einer Operation verwenden, also wenn ich sagen möchte, dass num gleich num eins plus ist, dann ist num zwei gleich num eins. Und dann wird diese Operation normal ablaufen. Oder wenn ich hier das Plus-Plus auf die andere Seite setze, dann ist Zahl zwei gleich dem Ergebnis dieser Operation. Wie auch immer, das ist es für dieses Video, das nächste Video, wir werden einen neuen mathematischen Operator namens Modulus durchgehen . Also danke fürs Zuschauen und wir sehen uns im nächsten. 20. Kapitel 5 (Operatoren): Modulus: In diesem Video gehen wir auf den Modulo-Operator ein, hier das Prozentzeichen ist. Und dieser Operator gibt Ihnen den Rest der Division. Also was ich damit meine, nun, lass uns weitermachen und es ausprobieren. Also erstellen wir zuerst ein paar Zahlen. Also sag, ich bin eins gleich zehn. Und dann ist int num zwei gleich drei. Dann nutzen wir diesen Operator. Also sag num eins Modul Nummer zwei. Einfach so. Und dann müssen wir das Ergebnis davon etwas zuordnen. Also erstellen wir tatsächlich eine weitere Ganzzahl, die Zone genannt wird. Sagen wir also, das Ergebnis ist momentan gleich 0. Und dann hier unten setzen wir das Ergebnis gleich num eins modulus num zwei. Also was wird das bewirken? Nun, es wird Nummer eins rosa Bräune nehmen und durch 33 teilen, geht in 103 Mal, und dann ist da noch ein Rest von einem. Wenn wir also weitermachen und unser Programm durchführen, sollten die Ergebnisse eins sein, aber das müssen wir trotzdem ausdrucken. Also mach weiter und sag CL, Ergebnis. Habe deinen Code ausgeführt. Und los geht's. Das ist der Rest unserer Abteilung. Und wenn wir das teilen und unser Programm ausführen würden, können Sie sehen, dass wir ein Ergebnis von drei erhalten. Und das liegt daran, dass das Ergebnis ein ganzzahliger Wert ist, was bedeutet, dass es nur ganze Zahlen in drei enthält, nur 103-mal vollständig. Deshalb ist das Ergebnis drei. Und wir werden in einem kommenden Video hier ein bisschen mehr darüber sprechen . Wie auch immer, das ist es für dieses Video. Im nächsten Video werden wir einige verschiedene Zuweisungsoperatoren durchgehen . Also danke fürs Zuschauen und wir sehen uns im nächsten. 21. Kapitel 5 (Betreiber): Zuordnung: In diesem Video werden wir einige Aufgabenoperatoren durchgehen . Wenn wir in der Vergangenheit einer aktuellen Variablen eine Zahl hinzufügen wollten , mussten wir so etwas sagen. Eins entspricht zum Beispiel zehn. Und um zu rechnen, müssten wir zum Beispiel sagen, dass num gleich num eins plus fünf ist. Und das gibt uns das Ergebnis 15. Also Nummer eins, wir sind jetzt gleich 15, weil unser Zuweisungsoperator alles auf der rechten Seite nimmt und es dem zuweist, was sich auf der linken Seite befindet. Deshalb wird es als Zuweisungsoperator bezeichnet. Jetzt können wir noch etwas anderes tun, was schneller ist, ist das Folgende. Wir können sagen, dass Nummer eins plus gleich ist. Hallo! Dies wird genau das Gleiche tun, was wir hier oben haben , nur schneller. Also lass mich weitermachen und dir das beweisen. Also sagten wir, int num eins ist gleich zehn, und dann ist num eins gleich num eins plus fünf, was 15 sein sollte. Um das zu sehen, sagen wir C raus. Und dann lasst uns weitermachen und auch eine neue Linie erstellen. Darunter heißt es dann, dass Nummer eins gleich zehn ist, nur um es wieder auf das zu setzen, was es ursprünglich war. Und dann hier unten drucken wir es wieder aus. Also sage ich CL eins. Schon wieder. Mach weiter und führe ein Programm aus. Also los geht's. Wir haben 15 zweimal ausgedruckt. Wie ich schon sagte, die hier. Und das hier ist genau das Gleiche. Es ist nur eine Kurzschrift. Und Sie können dieses Pluszeichen hier tatsächlich durch einen unserer anderen Operatoren ersetzen . Ich könnte also sagen, Minus ist gleich fünf, zum Beispiel weiß ich, dass es ausgedruckt ist, 15 von diesem ersten ausgedruckt und dann fünf von hier unten. Es ist einfach ein viel schnellerer Weg, dies zu tun. Und nur um Ihnen zu zeigen, dass es sogar mit dem Modulo-Operator funktioniert. Und wenn ein Programm im Rest von zehn geteilt durch fünf 0. Also wie auch immer, das ist es für dieses Video. Im nächsten Video werden wir über etwas sprechen , das sich Verkettung nennt. Ich hoffe, wir sehen uns dort. Danke fürs Zuschauen und wir sehen uns beim nächsten Mal. 22. Kapitel 5 (Betreiber): Verkettung: In diesem Video werden wir über die Verkettung von Strings sprechen. Im Wesentlichen bedeutet dies die Fähigkeit, zwei verschiedene Saiten zu einer neuen Saite zu kombinieren. Lassen Sie uns also einen Blick darauf werfen, wie das geht. Lassen Sie uns zunächst zwei verschiedene Strings erstellen , die miteinander kombiniert werden sollen. Wir sagen also, dass string FirstName gleich ist, und geben dann einen beliebigen Namen ein. Und dann machen wir dasselbe für LastName. Dann machen wir weiter und machen noch eine Zeichenfolge für einen vollständigen Namen. Also sagen wir String für mich. Und wir werden diesen einfach deklarieren , anstatt ihn zu initialisieren. Einfach so. Dann lasst uns weitermachen und diese Strings tatsächlich miteinander verketten und/oder kombinieren. Also sagen wir einfach , dass der vollständige Name gleich Vorname, Nachname ist. Ordnung, wenn wir das jetzt ausdrucken, könnten wir einfach CL sagen, vollständiger Name. Übrigens, wenn Sie Visual Studio verwenden und einen Rechtschreibfehler haben oder einfach nur eine Variable umbenennen möchten, können Sie einfach mit der rechten Maustaste darauf klicken. Und dann klicken Sie auf Umbenennen. Und dann mach einfach weiter und gib hier den neuen Namen ein. Dann können Sie weitermachen und auf Vorschau klicken. Und das zeigt Ihnen tatsächlich alle Stellen, an denen es den Namen dieser Variablen ersetzen wird. Und Sie können hier unten durch Ihren Code scrollen, um zu sehen, wie das aussehen wird, und dann auf Anwenden klicken. Und los geht's. Ordnung, also wenn wir jetzt weitermachen und unser Programm ausführen, können Sie sehen, dass es beide Namen zusammenfügt. Und nehmen wir an, wir wollten diese durch ein Leerzeichen getrennt haben . Nun, wir könnten einfach ein Leerzeichen hier oben platzieren und unseren Vor- oder Nachnamen, oder wir werfen es einfach hier unten rein. Also können wir weitermachen und so einen leeren Raum einbauen, ein weiteres Pluszeichen wie dieses einwerfen und los geht's. Wie Sie sehen können, ist es ausgedruckt oder vollständiger Name und sogar durch in unserem String-Literal genau dort. Und los geht's. Das ist wahrscheinlich der einfachste Weg, zwei oder mehr Strings miteinander zu kombinieren . Und denken Sie daran, dass dies eigentlich String-Verkettung genannt wird. Und es gibt noch einen Weg. Ich werde weitermachen und es dir zeigen. Diese Methode ist technisch schneller als die erste. Aber ich benutze es nicht so oft nur weil ich persönlich finde, dass es viel einfacher zu lesen ist und weil es einfacher ist mehr als nur zwei Dinge miteinander zu kombinieren. Aber ich werde dir das trotzdem zeigen. Auch nur eine Vorwarnung. Wir hätten das Gleiche hier oben tun können, als wir unseren vollen Namen verkündeten. Wenn wir wollten, könnten wir das alles einfach hier kopieren. Und dann hier oben, hätten wir gleich sagen können, das in die Arbeit als Zuhause einfügen. Also mache ich weiter und führe meinen Code hier aus, damit du sehen kannst , dass du los bist. Überhaupt kein Unterschied. Was bedeutet diese andere Art , auf die ich mich bezogen habe? Anstatt also das Pluszeichen zu verwenden , um zwei oder mehr Shrinks miteinander zu kombinieren , können wir das einfach außerhalb unseres Vornamens hier löschen , einfach so. Und dann sagen wir einfach dot append in Kleinbuchstaben. Und dann können wir in Klammern einfach die Variable oder die Zeichenkette einwerfen Variable oder die Zeichenkette , die wir dazu kombinieren wollen. Und noch eine kurze Anmerkung für diejenigen unter Ihnen, die Visual Studio verwenden, dieses kleine Feld, das Ihnen zeigt, wonach diese Methode sucht. Sie können dort tatsächlich auf die Pfeile klicken und es werden Ihnen die verschiedenen Optionen angezeigt, die Sie haben. Also nur eine Vorwarnung dazu. Wie dem auch sei, wir machen weiter und geben hier den Nachnamen ein. So. Und was die tun werden, es wird unseren Vornamen nehmen und den Nachnamen daran anhängen. Wenn wir nun unseren Code ausführen, können Sie sehen, dass er genau dasselbe tut. Wie gesagt, ich persönlich finde das jedoch etwas weniger lesbar und nerviger, wenn ich mehr als eine Sache zusammenfügen wollte , zugegeben, wir könnten hier oben einfach ein Leerzeichen setzen und unser Nachname, und das wird funktionieren. Aber was wäre, wenn wir diese Informationen vom Benutzer erhalten und sie nicht direkt eingeben würden, wäre es ziemlich umständlich, sie auf diese Weise zu verwenden. Also machen wir einfach weiter und lassen es so. Und los geht's. Es gibt zwei Hauptmethoden, mit denen Sie Strings in C plus plus verketten oder kombinieren können. Also danke fürs Zuschauen und wir sehen uns im nächsten. 23. Kapitel 5 (Operatoren): Casting und Truncation: In diesem Video werden wir sowohl über Casting als auch über Truncating sprechen . Beim Casting wird im Grunde genommen ein Datentyp verwendet und in einen anderen konvertiert. Und beim Kürzen wird im Grunde genommen das Ende von etwas abgeschnitten. Und ich zeige Ihnen hier in einer Sekunde, was ich damit meine . Okay, also lasst uns zuerst weitermachen und einen Blick auf das Abschneiden werfen. Also erstellen wir einfach einen Basisfluss, sagen wir, float num1 ist gleich 5, und geben dann Dezimalzahl ein, die du dort haben möchtest. Und dann Dumbo das. Wir werden weitermachen und int num zwei sagen und es gleich Zahl Eins setzen. Vergessen Sie auch nicht, ein F an das Ende von hier zu setzen , Float-Wert hier, damit Sie unserem Programm hier mitteilen, dass dies tatsächlich ein Float und kein Double ist. Ordnung, also wenn wir jetzt weitermachen und Nummer zwei ausdrucken, werden eigentlich nur fünf ausgedruckt. Und das zeige ich dir jetzt. Wie Sie sehen können, wurden gerade fünf ausgedruckt. Und Sie denken vielleicht, dass diese Zahl gerade abgerundet wird, aber ich zeige Ihnen jetzt , dass das nicht der Fall ist. Also selbst wenn ich etwas wie 5.99999 eingeben und unseren Code erneut ausführen würde . Es wird immer noch nur fünf sagen. Und das liegt daran, dass ein ganzzahliger Wert nach einem Dezimalpunkt keine Genauigkeit haben kann , oder? Es enthält nur ganze Zahlen. Und was tatsächlich in C plus passiert, es wird einfach alles nach dem Dezimalpunkt abschneiden . Wie ich am Anfang des Videos sagte, bedeutet Kürzen, einfach etwas abzuschneiden. Also im Grunde jede Zahl, die Sie haben , die Sie in eine Ganzzahl umwandeln , und es wird einfach die ganze Zahl beibehalten und den Dezimalpunkt ignorieren und alles hat ihn vollständig übergeben. Was auch immer diese Zahl ist, egal was hinter dem Dezimalpunkt liegt, sie wird nur die ganze Zahl speichern. Und diese Art des Castings, bei der wir einen Datentyp, der unser Flow ist, hier in eine andere Hand konvertieren . Wir mussten nichts extra machen. Sie haben das gerade geschrieben, als würden wir jede Variable gleich einer anderen setzen , was als implizites Casting bezeichnet wird. Es wird automatisch geändert ohne dass wir zusätzliche Arbeit leisten müssen. Jetzt zeige ich Ihnen ein Beispiel für x plus ein Casting, in dem wir unserem Programm hier mitteilen, dass wir von einem Datentyp zum anderen wechseln möchten. Insbesondere zeige ich Ihnen, wie sich das als nützlich erweisen wird. Oft wird Ihr Programm einfach implizit etwas umwandeln oder es von einem Datentyp in einen anderen konvertieren. Und mach einfach weiter und lauf normal. Und dabei wird es keine Probleme geben. Wie ich schon sagte, wenn wir das machen würden, wird es gut laufen. Keine Probleme. Dadurch wird einfach alles abgeschnitten , was über den Dezimalpunkt hinausgeht , weil eine Ganzzahl keine ganze Zahl enthalten kann. Und selbst wenn wir hier oben ein Double anstelle eines Flows machen und eine verrückte lange Zahl nach dem Dezimalpunkt wie diesem eingeben und dies dann in nach dem Dezimalpunkt wie diesem einen Flow ändern würden. Also unsere Zahl zwei ist jetzt ein Flow und es wird dieses Double hier in einen Float-Wert ändern. Und wenn wir unser Programm ausführen, können Sie sehen, dass es einfach das hielt, was es konnte. Und die Art und Weise diese Konvertierung durchgeführt wird, ist etwas verwirrend und es wird nicht immer so funktionieren hier, wo es aussieht , als ob es gerade über einen bestimmten Punkt hinaus aufgerundet wurde. Ich würde das nicht wirklich empfehlen es sei denn, Ihnen ist die zusätzliche Präzision egal da die Art und Weise, wie gesagt, damit umgegangen wird , ziemlich verwirrend sein kann und manchmal erhalten Sie eine völlig andere Nummer als erwartet. ein Beispiel dafür zeigen, Lassen Sie mich Ihnen ein Beispiel dafür zeigen, wann Sie etwas explizit in einen anderen Datentyp konvertieren möchten . Also lasst uns weitermachen und das alles löschen. Wir werden weitermachen und sagen, dass int Nummer eins gleich zehn ist. Und dann ist int num zwei gleich drei. Einfach so. Dann lass uns weitermachen und einen Float namens Ergebnis erstellen. Setze es gleich Zahl eins geteilt durch Zahl, beginne zehn und dividiere es durch drei. Und dann unten, lass uns weitermachen und unseren Flug ausdrucken. Sagen wir also C raus und führen ein Programm aus. Wie Sie sehen können, wurden nur drei ausgedruckt, obwohl zehn geteilt durch drei nicht genau drei sind. Und der Grund dafür ist, dass beide hier ganzzahlige Werte sind. Die Gleichung wird mit ganzen Zahlen ausgeführt, und ganze Zahlen können keine ganze Zahl enthalten. Also gab es uns einfach drei und dann setzte das Ergebnis hier gleich. Aber wenn wir wollen, dass es den richtigen Float-Wert dieser Division erhält , können wir diese beiden Zahlen explizit in einen Float umwandeln . Und der einfachste Weg, dies zu tun, was Sie in vielen Programmiersprachen sehen werden , die auf der Sprache C basieren , ist der folgende. Also werden wir weitermachen und Klammern vor unsere Variable setzen . Und dann setzen wir in diese Klammern einfach den gewünschten Datentyp, diese Variable hier oder den Standardtyp hier, in den WIR sie konvertieren. Also machen wir weiter und sagen einfach so schweben. Und dann machen wir hier dasselbe. Jetzt müssen wir Variablen schweben lassen, eine zehn und die andere drei ist, und sie werden geteilt. Und dann wird das Ergebnis dieser Gleichung hier in unsere Ergebnisvariable eingegeben, die dann auf der Konsole ausgedruckt wird. Also machen wir weiter und führen ein Programm durch. Und wie Sie jetzt sehen können, haben wir den richtigen Wert. Und das liegt daran, dass die Gleichung mit Floats gemacht wurde. Es wurde in einem Float-Wert gespeichert. Und unser Ergebnis hier war dem gleich. Was wäre, wenn wir weitermachen und eine dieser Übertragungen von einem Datentyp zum anderen aus unserer Gleichung hier entfernen einem Datentyp zum anderen aus unserer Gleichung hier und dann unser Programm erneut ausführen würden. Wie Sie sehen können, hat es immer noch funktioniert. Und selbst wenn wir es einfach mit dem anderen gemacht haben und unser Programm ausführen. Ich würde auch arbeiten. Ich würde das jedoch nicht nur tun, um auf der sicheren Seite zu sein, obwohl dies eine ziemlich grundlegende Gleichung war und es geklappt hat, würde ich empfehlen, es mit beiden Zahlen zu tun. Ein weiteres Beispiel dafür , dass dies nützlich ist, wäre , als würden wir mit einem char-Datentyp arbeiten. Wenn wir zum Beispiel unsere erste Ganzzahl hier in char num1 geändert haben und sie aufgrund des A-S-C-I-I-Tabellendiagramms auf zehn setzen, ist dies nicht wirklich zehn. Und ich kann Ihnen zeigen, dass, wenn wir das ausdrucken würden, wenn ich c out num one, einfach so und unser Programm ausführe, tatsächlich einen radikalen Tab ausdrucken würde, glaube ich. Lassen Sie mich weitermachen und dies in eine andere Nummer ändern. Ein besseres Beispiel hier. Wie Sie sehen können, hat es z ausgedruckt und das liegt Tabellendiagramm, über das wir gesprochen haben , als wir über Zeichen gesprochen haben, dass 122 nicht wirklich der Wert 122 ist. Aber wenn wir 122 aus unserer char-Variablen hier ausdrucken wollten , hätten wir sie einfach hier unten konvertieren können. Nehmen wir an, wir wollen das noch einmal in ein int verwandeln , indem wir einfach den gewünschten Datentyp in Klammern setzen und unser Programm ausführen. Und los geht's. Und jetzt wurde der ganzzahlige Wert unseres Zeichens 122 ausgegeben . Jetzt bietet C plus plus tatsächlich eine andere Möglichkeit, explizit von einem Datentyp in einen anderen zu konvertieren . Das unterscheidet sich von vielen Programmiersprachen , die auf der C-Sprache basieren. Also die Art und Weise, wie das gemacht wurde, als ob wir weitergemacht hätten und unsere vorherigen Kosten hier entfernt hätten und statisch alles unter Fall, Unterstrich, Besetzung gesagt hätten . Und dann fügen Sie innerhalb eines Symbols kleiner als und größer als den Datentyp ein, in den wir dies konvertieren möchten. Also zum Beispiel, und dann die Variable, die wir in Klammern konvertieren wollen. Wenn wir unser Programm ausführen, können Sie sehen, dass dies einwandfrei funktioniert. Wenn du es jetzt so machen willst, kannst du es. Technisch gesehen ist es viel sicherer, dies auf diese Weise zu tun. Und es ist auch auffälliger , dass wir dies mithilfe von Casting jemals auf einen anderen Datentyp ändern . Da ich auch mit anderen C-Programmiersprachen arbeite, mache ich es lieber anders. Und ich finde auch nicht wirklich die Risiken dies zu tun , so dramatisch, dass ich das alles nicht jedes Mal eingeben möchte, wenn ich einfach nur von einem Datentyp zum anderen wechseln möchte. Ich persönlich finde das viel einfacher. Ich denke, es ist viel sauberer und viel schneller zu tippen. Und es sei denn, Sie konvertieren viel oder machen etwas ganz Spezifisches damit. Wie gesagt, wenn Sie neugierig darauf sind , gerne die Unterschiede nachschlagen und warum der andere Typ überhaupt auf C plus plus verfügbar ist. Aber für mich persönlich und während des restlichen Kurses werde ich es jedes Mal, wenn wir irgendeine Art von Casting machen, einfach so machen, weil ich es viel einfacher finde und es fertig ist auf die gleiche Weise und andere C-Programmiersprachen. Ich arbeite also gerne auf eine Weise, unabhängig davon, welche Sprache ich verwende. Also los geht's. Sie wissen jetzt, wie Sie explizit von einem Datentyp in einen anderen konvertieren können. Und implizit so zu sein, als wir es von einem Float zu einer Ganzzahl gebracht haben, und es wurde automatisch gemacht. Wir mussten keine zusätzlichen Sachen reinlegen. Jedenfalls. Das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 24. Kapitel 6 (Konditionen): Geltungsbereich: In diesem Video werden wir über Variablen sprechen , Umfang von Variablen. Scope ist im Grunde nur ein Abschnitt Ihres Codes, in dem auf eine Variable zugegriffen werden kann. Und im Allgemeinen gibt es drei Hauptstellen, an denen eine Variable deklariert werden kann. Die erste befindet sich innerhalb einer Funktion, wie wir es getan haben, oder innerhalb eines Codeblocks , der durch eine offene und geschlossene geschweifte Klammer wie diese gekennzeichnet ist . Der zweite wäre innerhalb der Definition eines Funktionsparameters und wo sich dieser befinden würde. Zum Beispiel steht in unserer Hauptfunktion hier zwischen diesen Klammern. Jetzt werden wir tatsächlich auf Funktionsparameter eingehen, wenn wir über Funktionen und/oder Methoden sprechen dort später im Kurs über Funktionen und/oder Methoden sprechen. Und der dritte Hauptort , an dem Sie eine deklarierte Variable sehen , befindet sich vollständig außerhalb Ihrer Funktion. Und das wird als globale Variable bezeichnet. Also werde ich Ihnen das jetzt zeigen und Ihnen die Unterschiede zwischen einer Variablen zeigen, die hier in einem Code- oder Funktionsblock deklariert ist, und einer Variablen, die außerhalb eines deklariert ist. Jetzt werden echte schnelle Variablen, die als Anreiz deklariert sind, ein Code- oder Funktionsblock im Allgemeinen sind, ein Code- oder Funktionsblock im Allgemeinen als lokale Variable bezeichnet, will, sie außerhalb davon deklarieren werden global genannt variabel. Also lass mich weitermachen und dir das jetzt zeigen. Ein Beispiel für eine globale Variable wäre also , wenn wir in Louisville einfach sagen und sie auf fünf setzen würden. Nun, um Ihnen ein Beispiel für eine lokale Variable zu zeigen , mit der wir während des gesamten Kurses gearbeitet haben . Wir sagen einfach int lokale Nummer. Dieser entspricht auch fünf. Ordnung, also los geht's. Dieser hier ist eine globale Variable. Dieser hier unten ist eine lokale Variable. Was sind die Hauptunterschiede zwischen diesen beiden? Nun, da sich diese Variable außerhalb eines Codeblocks befindet , was wiederum durch offene und geschlossene geschweifte Klammern gekennzeichnet ist, kann auf sie überall in unserem Programm zugegriffen werden. Zugegeben, denken Sie daran, dass der Code von oben nach unten gelesen wird. Also irgendwo darunter könnten wir diese Variable wie gewohnt verwenden und darauf zugreifen. So können sie es zum Beispiel hier unten ausdrucken. Und wenn wir unseren Code ausführen, sehen Sie , dass er einwandfrei funktioniert. unsere lokale Variable kann jedoch nicht außerhalb des Codeblocks zugegriffen werden , in dem sie erstellt wurde oder darüber erstellt wurde, da der Code von oben nach unten gelesen wird. Derzeit arbeiten wir nur mit einer Funktion, die unsere Hauptfunktion ist. Aber wenn wir mit immer größeren Programmen arbeiten , werden wir mehrere Funktionen haben. Außerhalb unserer Hauptfunktion werden also auch Funktionen vorhanden sein, die wir zum Beispiel selbst geschaffen haben. Und auf diese lokale Variable könnte außerhalb unserer Hauptfunktion hier nicht zugegriffen werden. Das liegt daran, dass es zum einen nirgendwo darüber deklariert oder erstellt wurde. Und weil es lokal ist und nur innerhalb dieses Codeblocks verfügbar ist, , sobald wir hier irgendeinen Code außerhalb dieses Blocks haben ist es nicht mehr zugänglich, sobald wir hier irgendeinen Code außerhalb dieses Blocks haben. Im Allgemeinen könnte es genauso gut nicht außerhalb des Blocks existieren, den ich geschaffen habe. Und jetzt, nur um es noch einmal zusammenzufassen, eine lokale Variable als eine erstellte, im Grunde innerhalb einer Funktion oder innerhalb eines Codeblocks. Und eine globale Variable als eine, die außerhalb davon erstellt wurde. Und im Allgemeinen ist eine Gobo-Variable überall in Ihrem Code verfügbar. Und eine lokale Variable wird nur innerhalb des Blocks verfügbar sein, in dem sie erstellt wurde , und das ist der einfachste Weg, darüber nachzudenken. Einer ist lokal für den Block, der erstellt wurde und wann immer so leichtgläubig überall verfügbar ist. Wie auch immer, wenn Sie dieses Konzept nicht vollständig verstehen, sich darüber keine Sorgen. Wir werden eine Menge damit arbeiten, also wirst du eine Menge Dinge über die Praxis und Beispiele erfahren. Aber ich möchte Sie nur auf dieses Konzept aufmerksam machen. Wie dem auch sei, das war's für dieses Video. Im nächsten Video werden wir endlich über bedingte Aussagen sprechen, die nicht Lage sein werden, nach verschiedenen Bedingungen zu suchen , was die Möglichkeiten unendlich erweitern wird die Möglichkeiten unendlich erweitern die du mit deinem Code hast. Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 25. Kapitel 6 (Konditionen): Einführung in die Konditionen: In diesem Video gebe ich Ihnen nur eine kurze Einführung in bedingte Aussagen. Also im Grunde eine bedingte Anweisung als etwas, das überprüft, ob die Bedingung wahr oder falsch ist. Und nur wenn diese Bedingung wahr ist, wird der damit verbundene Codeblock ausgeführt. Denken Sie daran, dass ein Codeblock normalerweise durch eine offene und geschlossene geschweifte Klammer dargestellt wird. Wenn wir zum Beispiel sagen, ist fünf größer als eins? Nun ja, da fünf größer als eins ist, wäre diese Bedingung wahr und es würde Hallo ausgegeben. Wenn wir jedoch fragen würden, ob fünf weniger als eins ist , wäre diese Bedingung falsch in diesem Code würde vollständig übersprungen. Das ist also im Grunde das, was eine bedingte Anweisung ist und wie sie funktioniert. Prüft im Grunde nur, ob eine Bedingung erfüllt ist. Und wenn ja, wird der dazugehörige Codeblock ausgeführt . Andernfalls wird dieser Codeblock übersprungen. Jetzt werden wir in den kommenden Videos eine Menge damit arbeiten und unsere eigenen bedingten Aussagen erstellen . Du wirst also eine Menge praktisches Training bekommen. Wie können diese für eine Menge verschiedener Dinge verwendet werden. Nehmen wir zum Beispiel an, Sie haben ein Spiel erstellt. Vielleicht möchtest du sehen, ob jemand der erste Spieler ist oder ob er den Knopf drückt oder ein bestimmtes Level oder ähnliches abgeschlossen hat. Hoffe also, das war ziemlich einfach zu verstehen. Wenn nicht, wie gesagt, mach dir keine Sorgen. Du wirst eine Menge Übung und mehr Informationen und die kommenden Videos bekommen. Ich wollte Ihnen nur eine kurze Einführung in das Konzept der bedingten Aussagen bevor wir fortfahren. Also danke fürs Zuschauen und wir sehen uns im nächsten. 26. Kapitel 6 (Konditionen): Betreiber von Beziehungen und Gleichstellungsfragen: In diesem Video gehen wir auf bedingte Operatoren ein. Jetzt sind bedingte Operatoren da, mit denen Sie nach verschiedenen Bedingungen suchen können. Schauen wir uns also die sechs verschiedenen Typen an. Die erste, die wir hier haben durch die Verwendung von zwei Gleichheitszeichen erstellt wird , überprüft, ob etwas mit etwas anderem übereinstimmt. Also zum Beispiel fünf gleich fünf. Und es ist wichtig, daran zu denken, dass dafür zwei Gleichheitszeichen erforderlich sind, da es nur eines davon ist der Zuweisungsoperator, mit dem wir in den vergangenen Videos gearbeitet haben . Wenn Sie also überprüfen möchten, ob etwas dem anderen entspricht, verwenden wir ein doppeltes Gleichheitszeichen wie dieses. Nun prüft der darunter liegende , der ein Ausrufezeichen und dann ein Gleichheitszeichen verwendet , ob etwas nicht gleich etwas anderem ist. Und dann gehe ich zur Seite und gebe Ihnen ein Beispiel dafür, wo dieser Operator eine echte Bedingung schaffen würde. Wir können also sagen, fünf ist gleich fünf. Und dann hier unten, denn das ist nicht gleich eins, sagen wir, drei nicht gleich fünf. Und das wird wahr sein, denn drei ist nicht gleich fünf. Jetzt ist es nur noch ein Ausrufezeichen gefolgt von einem Gleichheitszeichen. Und keine Sorge, wir werden diese in den kommenden Videos verwenden, teilen und einige praktische Übungen damit machen. Ich wollte Ihnen nur eine Einführung in die verschiedenen bedingten Operatoren geben. Das nächste ist das Größer-als-Symbol, dem ich sicher bin, dass viele von Ihnen in der Vergangenheit gesehen haben, das nur das Größer-als-Symbol ist und so etwas wäre wahr. Also ist zehn größer als drei? Ja, ja, ist es. Das wäre also wahr. Und dann könnten wir hier unten das Gegenteil tun. Also sagen wir drei, weniger als zehn. Und dieses ist nur das kleinere Symbol, das Sie wahrscheinlich schon einmal gesehen haben. Nun, dieser hier unterscheidet sich ein wenig von dem, was Sie in der Vergangenheit gesehen haben, wo Sie normalerweise die Linie unter dem Größer-als-Symbol haben würden . Aber es ist ziemlich einfach. Sie werden nur das Größer-als-Zeichen sein gefolgt von einem Gleichheitszeichen. Wir werden nur überprüfen, ob das, was links ist größer oder gleich dem ist, was rechts ist. Und das alles wird von links nach rechts gehen , nur damit du es weißt. So können wir zum Beispiel sagen, ist zehn größer oder gleich fünf? Und dass es wahr wäre, weil zehn größer oder gleich fünf ist und somit sogar zehn sein könnte, und das wäre auch wahr. Und dann unten haben wir das Kleiner als oder gleich, was nur ein Kleiner-als-Zeichen ist, gefolgt vom Gleichheitszeichen hier. Und wir können etwa fünf haben, weniger als oder gleich zehn. Dies sind nur einige sehr einfache Beispiele, aber beachten Sie, dass wir, anstatt hier tatsächliche Werte einzuwerfen, tatsächlich Variablen einfügen können, die wir erstellt haben, was die Möglichkeiten wirklich erweitert denn dann könnten wir zum Beispiel Dinge basierend auf Benutzereingaben tun. Das sind all die verschiedenen bedingten Operatoren, die Sie verwenden können , wenn Sie mit bedingten Anweisungen arbeiten. Im nächsten Video werden wir nur ein paar weitere Betreiber durchgehen . Und danach werden wir tatsächlich unsere allererste bedingte Aussage erstellen . Also danke fürs Zuschauen und wir sehen uns im nächsten. 27. Kapitel 6 (Konditionen): Logische Betreiber der Seiten: In diesem Video werden wir über die drei verschiedenen logischen Operatoren und C plus plus sprechen . Und dies sind ein paar weitere Operatoren, die Sie verwenden können, wenn Sie mit bedingten Anweisungen arbeiten. Der erste, den wir haben, ist der Operator and, durch die Verwendung von zwei n Symbolen oder kaufmännischen Zeichen erstellt wird . Und so wie dieser funktioniert, wird überprüft, ob der Ausdruck links und der Ausdruck rechts beide wahr sind, und wenn das wahr ist, dann wird diese Bedingung als Ganzes wahr sein. Ist zum Beispiel fünf größer als drei? Ist drei weniger als in Ordnung, weil beide wahr sind. Dies würde nur zutreffen, wenn beide Ausdrücke wahr sind. Nun, es wäre ein wahrer Zustand. Nun, der darunter liegende ist der Oder-Operator. Und das wurde mit diesen beiden radikalen Symbolen hier geschaffen. Und so wie dieser funktioniert, werde ich nur überprüfen, ob der Ausdruck links oder ob der Ausdruck rechts wahr ist Wenn mindestens einer davon wahr ist, die Bedingung als Ganzes wahr. So können wir zum Beispiel sagen, ist fünf größer als drei? Nun ja, ist es, ist drei größer als fünf? Die Antwort lautet nein. Weil dieser wahr ist. Diese ganze Bedingung ist wahr , weil wir nur wissen wollten, ob der eine oder andere wahr ist. Und schließlich haben wir diesen NOT-Operator, den Sie im letzten Video mit dem Operator ungleich gesehen haben , der im Grunde nur true zurückgibt, , der im Grunde nur true zurückgibt wenn die Bedingung hier falsch ist. Weil fünf weniger als drei ist, was falsch ist. Und wir fragen, ob das nicht im Wesentlichen wahr ist, dann wäre diese ganze Bedingung wahr. Also nur um zusammenzufassen, dass die Art und Weise, wie das hier funktionieren würde, als f, was hier drin ist, falsch ist. Die Bedingung als Ganzes würde true zurückgeben, da im Wesentlichen das Gegenteil von diesem NOT-Operator zurückgegeben wird. Und eine andere Art, wie Sie darüber nachdenken können, wie wir im Grunde sagen, stimmt das nicht? Und aus diesem Grund ist es nicht wahr. Also wie auch immer, das ist es für dieses Video. Im nächsten Video werden wir tatsächlich unsere allerersten bedingten Anweisungen erstellen unsere allerersten bedingten , mit denen Sie endlich einige praktische Übungen mit der Verwendung dieser verschiedenen Operatoren und mit dem Erstellen erhalten einige praktische Übungen mit der Verwendung dieser verschiedenen Operatoren und können bedingte Anweisungen. Also danke fürs Zuschauen und wir sehen uns im nächsten. 28. Kapitel 6 (Konditionen): Wenn Statements: In diesem Video erstellen und arbeiten wir mit unserer allerersten bedingten Anweisung , der if-Anweisung. Und dies ist die grundlegendste bedingte Aussage , die Sie in der Programmierung sehen werden. Schauen wir uns also an , wie das geschaffen wurde. Also zuerst werde ich Ihnen die Syntax zeigen, wie Sie eine if-Anweisung erstellen und Sie können diese kopieren, wenn Sie möchten. Sonst kannst du einfach mitmachen. Okay, also los geht's. Im Grunde sagen wir f und dann meine Klammern. Wir werden eine Bedingung stellen, die wir überprüfen wollen, um festzustellen, ob sie wahr ist oder nicht. Und wenn es stimmt, werden wir alles in unserem Codeblock machen . Und Sie haben vielleicht bemerkt, dass das im Grunde gezeigt habe als ich Ihnen zum ersten Mal bedingte Aussagen vorgestellt habe. Also lasst uns weitermachen und unseren ersten erstellen. Hier unten. Wir sagen weiter, ob fünf größer als drei ist. Und dann sagen wir in geschweiften Klammern C raus. Fünf ist größer als drei. Es sieht so aus. Wenn wir nun unser Programm ausführen, werden wir sehen, dass fünf gutgeschrieben werden und drei auf der Konsole ausgedruckt werden. Und das liegt daran, dass unser Zustand hier wahr war. Also im Grunde sagen wir nur, wenn diese Bedingung wahr ist, führe diesen Code aus. Und nur um Ihnen zu zeigen, dass das nicht funktionieren würde, wenn diese Bedingung falsch , drehen wir das um. Wir sagen also, es sind fünf, weniger als drei. Und wenn unser Code wieder kommt, und Sie können sehen, dass nichts passiert. Und das liegt daran, dass alles in diesem Codeblock komplett übersprungen wird. Etwas anderes, was Sie tun können, anstatt hier einen Ausdruck einzufügen , ist, diesen einfach vollständig zu entfernen. Ich kann nur sagen, ob das stimmt, und das wird tatsächlich gut funktionieren. Wie Sie sehen können, lief unser Code. Und Sie können auch das Gegenteil tun, indem Sie sagen, ob falsch. Und los geht's. Jetzt kann ich mir kein gutes Beispiel dafür vorstellen, wann Sie dies in einer if-Anweisung verwenden würden. Aber ich möchte Ihnen nur zeigen, dass Sie Wahr oder Falsch direkt in die Bedingung setzen können . Und nur um Ihnen ein kurzes Beispiel für die Verwendung des NOT-Operators zu zeigen die Verwendung des NOT-Operators , über den wir im letzten Video gesprochen haben. Wir setzen diese falschen hier einfach Klammern und setzen dann unseren NOT-Operator nach außen. Und so sagen wir im Grunde, wenn das, was hier drin ist, nicht wahr ist, was daran liegt , dass wir unseren Code ausführen. Sie werden sehen, dass unser Code in unserem Codeblock dort ausgeführt wird. Und sie gehen. Lassen Sie uns nun weitermachen und diesen Klick entfernen. Und ich werde hier einfach true eintragen damit du weißt, dass unser Code laufen sollte. Und ich werde diese geschweiften Klammern entfernen , nur um Ihnen zu zeigen, was Sie tun können, falls Sie dies wünschen. Wenn wir das nun ausführen würden, würde dieser Code ohne unsere geschweiften Klammern darin laufen. Und wenn ich es auf falsch ändern würde, so. Und führe unseren Code erneut aus, das würde tatsächlich übersprungen werden. Und das liegt daran, dass Sie mit C plus plus tatsächlich die geschweiften Klammern entfernen können , als Sie nur eine solche Anweisung eingegeben haben. Ich persönlich würde das nicht empfehlen. Ich denke, es ist eine sehr unordentliche Art, Code zu schreiben, aber ich wollte Ihnen nicht zeigen, dass es möglich ist falls Sie ihn in Zukunft jemals sehen sollten. Okay, also lass uns weitermachen und unsere geschweiften Klammern wieder einsetzen und unseren Code wieder hineinlegen. Wie dem auch sei, los geht's. Sie wissen jetzt, wie Sie eine if-Anweisung erstellen, die zur grundlegendsten bedingten Anweisung wurde Sie erstellen können. Ganz schnell, nur um Ihnen zu zeigen, dass das mit Variablen funktioniert. Wir werden hier ein Paar zusammenstellen. Wir können also sagen, dass eins gleich fünf ist. Und Junge, das war Nummer zwei gleich drei. Dann können wir hier unten einfach sagen, ist num eins größer als zwei? Und weil es so ist, wird unser Code ausgeführt. Eine weitere Sache, die ich Ihnen zeigen möchte, ist, dass Sie sie einfach auf die gleiche Linie setzen können, wie ich es hier oben getan habe. Wie Sie sehen können, wird das also einwandfrei funktionieren. Und oft werde ich das tun, wenn ich etwas sehr Kleines in meiner if-Anweisung habe , aber normalerweise finde ich es viel sauberer, meine geschweiften Klammern in separaten Zeilen zu haben. Für diejenigen unter Ihnen in Visual Studio können Sie es einfach eingeben und dann auf die Registerkarte tippen , damit es automatisch für Sie ausgefüllt wird. Das ist also eine ziemlich praktische Möglichkeit , sofort eine if-Anweisung zu erstellen. Es gibt noch andere Dinge wie diese, die Sie automatisch erstellt haben können , und Visual Studio. Aber während dieses Kurses würde ich empfehlen, dass Sie dies einfach eingeben , um die praktische Übung zu erhalten. Nun, eine weitere Sache, die ich Ihnen allen zeigen wollte, weil Sie hier tatsächlich viel größere Ausdrücke einfügen können. So könnten wir zum Beispiel num eins größer als num zwei sagen. Und wir sagen einfach zehn größer als 35, größer als eins. Und weil all dies wahr ist, sollte dies ausgeführt werden , ein Code ausgeführt werden. Sie können sehen, dass es gut lief. Aber wenn ich das am Ende hier in Secretary Sample ändern und unseren Code erneut ausführen würde . Weil all das nicht stimmte. Das läuft nicht. Sie können diese mit AND- oder ODER-Zeichen mischen und abgleichen und uns so lange ausdrücken, wie Sie möchten. Aber je länger und größer und komplizierter Sie dies machen, würde ich empfehlen, Klammern zu verwenden, genau wie bei mathematischen Ausdrücken um Ihre Reihenfolge der Operationen zu definieren. Also möchte ich zum Beispiel diese beiden hier anstelle von Klammern setzen . Also das wurde zuerst überprüft und dann überprüfe es danach. Oder ich kann sogar das oder -Zeichen hier eingeben und dann sagen zehn größer als 35 größer als sechs ist. Und weil das falsch wäre, dann müsste das wahr sein , denn ich würde wissen wollen, ob entweder das oder alles darin wahr ist. Also weil dieser hier angezeigt wird, obwohl dieser falsch ist oder Code ausgeführt werden würde. Weil wir prüfen, ob das stimmt oder ob das stimmt. Beachten Sie auch, dass Sie eine Fehlermeldung erhalten, wenn Sie hier nichts in Ihre Klammer setzen . Und es wird Sie bitten, einen Ausdruck einzubringen . Wie auch immer, nur um kurz zusammenzufassen, was ich möchte, dass ihr aus diesem Video mitnehmt , ist, ein if-Statement zu erstellen. Sie werden nur sagen, ob Sie in Kleinbuchstaben und dann in Klammern eine Bedingung setzen, unter der Sie überprüfen möchten, ob sie wahr ist oder nicht. Dann warten Sie in geschweiften Klammern darauf, den gesamten Code einzugeben, den Sie ausführen möchten , wenn diese Bedingung erfüllt ist. Da hast du es also. Das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 29. 28: In diesem Video werden wir über das Verschachteln von if-Statements sprechen. Also, was meine ich damit? Nun, im Grunde ist es nur eins zu eins, wenn die Anweisung einer anderen verschachtelt oder gesetzt wird. Schauen wir uns also an, wie das aussehen würde. Also werden wir zuerst weitermachen und eine grundlegende if-Anweisung wie diese erstellen . Und dann erstellen wir eine weitere if-Anweisung innerhalb des Codeblocks für diese if-Anweisung. Einfach so. Und dann hier unten werden wir weitermachen und diesen in falsch ändern , so. Und dann machen wir weiter und sagen C raus. Und wir werden die zweite Erklärung so ausdrucken. Dann lassen Sie uns weitermachen und die ganze Codezeile kopieren und sie auch in unsere erste if-Anweisung einfügen. Einfach so ändern wir diesen, um zuerst zu sagen. Im Grunde ist es also genauso normal, wie diese erste if-Anweisung funktionieren wird, wie zu überprüfen. Ist diese Bedingung wahr? Und wenn ja, wird alles in diesem Codeblock ausgeführt. Und wenn nicht, wird es einfach weitergehen und es komplett überspringen. Dann wird diese zweite if-Anweisung auch überprüfen, ob die Bedingung hier wahr ist. Und wenn ja, wird es nur den Code innerhalb seines Codeblocks ausführen , der genau hier ist. Wenn es falsch ist, heißt es Block wird komplett übersprungen. Und dann wird der Rest des Codes aus der ersten Schrittanweisung wie gewohnt ausgeführt. Denn wenn Sie Mitglied sind, wird Code von oben nach unten gelesen. So wie ich es könnte, wenn ich rot bin, wird es überprüfen, ob diese Bedingung wahr ist. Wenn es großartig ist, wird es weitermachen und anfangen, diesen Code auszulesen. Dann wird geprüft, ob diese Bedingung zutrifft. Wenn es L ist, lesen Sie den gesamten Code darin und fahren Sie fort. Wenn es nicht wahr ist, wird dieser Codeblock einfach übersprungen und dann würde er wie gewohnt weitergehen. Wenn wir also unseren Code jetzt ausführen, wird er nur zuerst die if-Anweisung ausgedruckt. Und wenn der Code hier drin auch wahr wäre. Wenn wir das also vorerst in true ändern, run, unser Code wird die zweite if-Anweisung und dann die erste if-Anweisung sagen . Und der Grund, warum zuerst die zweite if-Anweisung steht, ist , dass zuerst die zweite if-Anweisung steht, ist mein Code von oben nach unten gelesen wird. Obwohl diese erste if-Aussage wahr war, musste sie immer noch zuerst lesen, ob die zweite wahr war , und zuerst alles darin tun wenn das wahr war, bevor sie hier unten weitermachte , um es zu zeigen du , dass das der Fall ist. Wenn ich diesen Code schneiden und ihn über diese erste if-Anweisung setzen und unseren Code erneut ausführen würde. Sie können sehen, dass es jetzt umgekehrt war. Da hast du es also. Sie wissen jetzt, wie man Aussagen verschachtelt. Und Sie können das so oft tun, wie Sie möchten. Bevor wir dieses Video beenden, wir noch zu einem früheren Thema zurück, dem wir über lokale und globale Variablen gesprochen haben . Denken Sie daran, wie ich sagte, dass eine lokale Variable nur innerhalb ihres Gültigkeitsbereichs oder innerhalb des Codeblocks verfügbar ihres Gültigkeitsbereichs oder innerhalb ist , von dem sie erstellt wurde. Wenn wir also hier oben eine globale Variable erstellen, nennen wir das einen niedrigen Bone und setzen sie auf fünf. Da wir diese globale Variable hier haben, ist sie überall in Ihrem Code darunter verfügbar. Das bedeutet also, dass anstelle unserer ersten if-Aussage wir anstelle unserer ersten if-Aussage zuerst die if-Anweisung sagen können. Und danach können wir global ausdrucken. Lass uns weitermachen und eine neue Linie erstellen. Und selbst in unserer zweiten if-Erklärung haben wir auch Zugang zu Global. Das wird auch funktionieren. Wenn wir also unseren Code ausführen, wird zuerst gesagt, ob Anweisung fünf unsere globale Variable ist. Zweite if-Aussage. Und auch nur um Ihnen zu zeigen, dass dies auch möglich ist. Und unsere globale Variable, wir könnten sie hier draußen deklarieren und dann hier unten initialisieren. Denken Sie daran, dass Sie sicherstellen möchten, dass Sie einer Variablen einen Anfangswert geben , bevor Sie sie verwenden. Bevor wir das hier ausdrucken, möchte ich global sagen, dann gib ihm einen Anfangswert, drei. Und das wird genauso zuerst funktionieren, wenn Aussage drei. Zweite if-Aussage drei. Aber jetzt schauen wir uns einige lokale Variablen an. Wenn wir das also loswerden, werden Sie zunächst feststellen, dass es nicht mehr weiß, was global ist. Entferne einfach, dass sie irgendwie sind, wenn wir eine Variable innerhalb unserer Hauptfunktion erstellen würden , wäre sie auch in unseren beiden if-Anweisungen verfügbar . Und das liegt daran, dass z.B. wenn wir hier Nummer eins sagen und es gleich fünf sucht, z. B. wird dies jetzt überall darunter in seinem Codeblock verfügbar sein . Also bis dieser geschlossenen lockigen Klammer hier für diese Methode, ist in diesem Fall unsere Hauptmethode. Zusammenfassend lässt sich sagen, unsere lokale Variable überall darunter verfügbar sein wird , da Code von oben nach unten gelesen wird, innerhalb seines Umfangs, der hier die gesamte Methode ist. Aber was wäre, wenn wir eine lokale Variable innerhalb einer dieser if-Anweisungen erstellen würden ? Nun, es wird nur innerhalb seines Blocks verfügbar sein. Wenn wir also sagen, dass Nummer eins gleich fünf ist, abgesehen davon, dass dieser Codeblock hier unten ist, weil der Codeblock von hier nach hier läuft, können wir nicht mehr darauf zugreifen. Es könnte genauso gut einfach nicht existieren. Also num eins ist zehn , funktioniert nicht, weil wir nicht wissen, was Zahl eins ist. Es ist undefiniert. Diese Variable existiert nicht weil ihr Gültigkeitsbereich genau hier ist. Es würde jedoch in unserer zweiten if-Erklärung existieren. Also genau hier könnten wir immer noch Nummer eins ausdrucken, weil es im Rahmen des Rahmens liegt. Da hast du es also. Ich wollte Ihnen nur ein besseres Beispiel dafür geben , worüber ich gesprochen habe , als wir über lokale und globale Variablen gesprochen haben. Denken Sie also daran, dass eine globale Variable eine Variable ist die außerhalb des Codeblocks in einer lokalen Variablen erstellt wurde. Eine globale Variable wird überall verfügbar sein , nachdem sie erstellt wurde, eine lokale Variable ist erst überall verfügbar , nachdem sie bis zum Ende ihres Codeblocks erstellt wurde. Da hast du es also. Hoffentlich ergab das Sinn. Wenn nicht, spielen Sie ein wenig mit lokalen und globalen Variablen herum , um zu sehen, ob der Umfang der Verfügbarkeit besteht. Wie auch immer, das ist es für dieses Video, das nächste Video, wir werden uns eine andere Art von bedingter Anweisung ansehen , die als if else-Anweisung bekannt ist. Also danke fürs Zuschauen und wir sehen uns im nächsten. 30. Kapitel 6 (Konditionen): If-Else: In diesem Video werfen wir einen Blick auf die „if else“ -Aussage. Lassen Sie mich also weitermachen und Ihnen die Syntax für die Anweisung oder die Regeln für die Erstellung dieser Anweisung zeigen die Anweisung oder die Regeln . Genau wie zuvor erstellen Sie eine grundlegende IF-Anweisung in der Sie f und dann Klammern sagen. Sie geben die Bedingung an , die Sie überprüfen möchten. Wenn es wahr ist, dann blockiert Ihr Code danach. Gleich danach werden Sie jedoch das Schlüsselwort else eingeben, das ebenfalls in Kleinbuchstaben geschrieben ist, genau wie F hier. Und dann, gleich nachdem Sie etwas anderes gesagt haben, werden Sie nur einen weiteren Codeblock ohne Bedingung setzen . Also im Grunde sagen wir, wenn diese Bedingung hier wahr ist, wollen wir das wie gewohnt machen, oder Sie können sich das vorstellen, als ob Sie es anders tun würden. Also lasst uns weitermachen und sehen, wie das funktioniert. Also hier unten erstellen wir eine grundlegende if-Anweisung. Also sagen wir, wenn, sagen wir, fünf ist größer als drei, dann werden wir nach diesem Codeblock etwas anderes sagen und Visual Studio hier bemerken, wie es beide automatisch hervorhebt mir zu zeigen die sind miteinander verbunden. Sie können auch einfach die Tabulatortaste drücken und der Rest wird automatisch für Sie erstellt. Andernfalls setzen Sie im Grunde einfach eine weitere offene und eine geschlossene lockige Klammer wie diese auf. Also haben wir jetzt unser FL-Statement erstellt, aber schauen wir uns genauer an, wie das funktioniert. Lassen Sie uns also hier weitermachen und sehen, wie Druckzustand wahr war. Dann lassen Sie uns in unserer else-Anweisung oder unserem else-Codeblock weitermachen und CL-Bedingung sagen. Und der Grund, warum ich uns diese speziell schreiben ließ ist so eine Heimfahrt, wie das funktioniert. Im Grunde werden wir diesen Zustand wie gewohnt überprüfen. Wenn diese Bedingung jedoch falsch ist, wird dieser Codeblock hier in einer festen Bedingung ausgeführt, die wahr ist. Dieser Code hier wird ausgeführt. Im Grunde möchten Sie also eine if else-Anweisung verwenden wenn Sie etwas nur ausführen möchten , wenn die Bedingung wahr ist, aber Sie möchten auch etwas ausführen , wenn die Bedingung falsch ist. Und wenn wir jetzt weitermachen und unseren Code hier ausführen, werden Sie sehen, dass der Zustand wahr war, weil fünf größer als drei ist. Aber wenn wir weitermachen und das jetzt umkehren, sage ich, es sind fünf, weniger als drei. Und wenn sie wieder geschnitten werden, heißt es, dass der Zustand falsch war. Also wird alles auf Ihrem F-Codeblock ausgeführt, wenn die Bedingung wahr ist und alles andere. Der Codeblock wird ausgeführt, wenn die Bedingung falsch ist. Ich weiß, dass wir nur eine Anweisung oder nur ein Stück Code in diese Codeblöcke eingefügt haben. Aber das kann so groß sein , wie Sie möchten. Im Moment fragen sich einige von Ihnen vielleicht, warum nehmen wir das nicht einfach und legen es hier hin? Nun, wir hätten vielleicht nicht sagen wollen, dass unser Zustand falsch war, wenn nicht, richtig. Das erlaubt uns also nur, dass ein bestimmter Codeblock nur ausgeführt wird, wenn dies in einem bestimmten Codeblock zutrifft, der nur ausgeführt wird, wenn er falsch ist. Da hast du es also. Sie wissen jetzt, wie man eine if else-Anweisung erstellt. Im nächsten Video werden wir uns etwas ansehen, das als Else-If-Statements bezeichnet wird. Also wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 31. Kapitel 6 (Konditionen): Else-If: In diesem Video werden wir einen Blick darauf werfen, eine else-Anweisung zu erstellen , in wir im Grunde überprüfen können, ob eine Bedingung wahr ist, dann überprüfen können, ob eine oder mehrere andere Bedingungen wahr sind dann können wir immer noch etwas laufen lassen, wenn keine dieser Bedingungen erfüllt ist. Schauen wir uns also an, wie das funktioniert. Die grundlegende Syntax dafür ist also, dass wir eine if-Anweisung erstellen, genau wie in der Vergangenheit. Und wenn diese Bedingung zutrifft, wird dieser Code hier ausgeführt und dann wird alles andere bis zum Ende übersprungen. Aber wir können das hier rauswerfen, um zu sehen, ob eine andere Bedingung erfüllt ist, falls die erste nicht zutrifft Wenn das stimmt, wird nur dieser Code ausgeführt und der Rest wird übersprungen. Und dann können wir immer noch eine andere Aussage haben , in der wir sagen können , wenn nichts davon wahr wäre, würden wir das trotzdem tun wollen. Und los geht's. Das ist die grundlegende Syntax für eine else-Anweisung. Also lasst uns weitermachen und einen unserer ganz jungen Menschen erschaffen. Und nur um Spaß damit zu haben, wollen wir weitermachen und auch dafür ein einfaches Programm erstellen . Also sagen wir Nummer eins. Und darunter werden wir int num zwei sagen. Dann lasst uns weitermachen und tatsächlich einige Benutzereingaben für diese erhalten . Also sagen wir, schickte ihnen einen Schlag, der Sünde sagt. Am Ende von all dem wird dann unser else-Statement entstehen. Sagen wir, wenn taub eins größer als zwei ist, dann wollen wir Folgendes tun. Also sag C aus eins. Und dann sagen wir hier in Anführungszeichen, ist größer als. Dann fügen wir auch hinzu. Um das zu machen. Wir machen weiter und unterstreichen. Und ich werde hier ein paar Felder einwerfen, nur damit es beim Ausdrucken viel sauberer aussieht. Dann unten sagen wir etwas anderes. Und noch einmal, das ist alles Kleinbuchstaben kleiner als Zahl zwei. Dann wollen wir das Gegenteil ausdrucken. Also sag CL num eins, num zwei. Und darunter sagen wir noch etwas. Und dann denk dran, wir stellen keine Bedingung an, wir sagen nur etwas anderes. Willst du sagen, eins ist gleich zwei m? Einfach so. Im Grunde nehmen wir zwei und Haustiere und nehmen einen Input für sie eins und setzen dann Nummer zwei ein. Und dann sagen wir , wenn taub eins größer ist als Zahl zwei, dann drucken wir einfach aus Nummer eins größer ist als Zahl zwei. Andersfalls oder nicht, wenn num eins kleiner als Zahl zwei ist, dann wollen wir ausdrucken, dass num eins kleiner als num zwei ist. Andernfalls, wenn keine von beiden zutrifft , dann müssen sie gleich sein. Also sagten wir, sonst ist Nummer eins gleich Zahl Zwei. Und wenn wir das dann bereinigen wollen, damit es für den Benutzer oder uns in diesem Beispiel hier oben etwas besser aussieht , können wir Folgendes tun. Wir können C als Zahl sagen, Doppelpunkt so. Und dann kopieren wir das einfach und fügen unter unsere cinnum eine Aussage ein, so sagen wir, gib a ein, eine andere Zahl. Und dann zoome ich schnell heraus, damit ihr einen vollständigen Blick auf den Code werfen könnt und sicherstellt, dass eurer mit meinem übereinstimmt. Dann führen wir unseren Code aus, um sicherzustellen, dass er funktioniert. Und stellen Sie sicher, dass Sie es ohne Debuggen ausführen oder eine Reihe dieser sin dot getline hinzufügen. Also mach weiter und gib eine Zahl ein. Dann geben Sie für Ihre zweite Zahl eine kleinere Zahl als die erste ein. Und ich sollte sagen, dass unsere erste Zahl größer war als unsere zweite Zahl. Und dann können wir weitermachen und unser Programm erneut ausführen. Aber dieses Mal geben eine kleinere Zahl für unsere erste ein. Und da hast du es eingerichtet. Unsere erste Zahl war weniger als eine Sekunde. Und wenn wir es erneut ausführen, können wir zwei mit derselben exakten Zahl eingeben. Und es sollte sagen , dass sie gleich sind. Und los geht's, alles funktioniert. Und nur eine kurze Notiz, bevor wir das Video abschließen, ich möchte Sie wissen lassen, dass Sie mehrere andere haben können. Wenn Bedingungen hier in Ihrer Anweisung sind, könnten Sie sagen, dass Alice num eins zum Beispiel gleich Zahl zwei ist, und dann auch dafür einen Codeblock haben. Und das wird gut funktionieren. In diesem Beispiel könnten wir natürlich genauso gut etwas anderes verwenden. Aber du verstehst meinen Standpunkt. Sie können so viele andere Aussagen oder Bedingungen haben , die ich sagen sollte, wie Sie möchten. Außerdem benötigen Sie nicht einmal diese else-Anweisung unten. Dies ist nur etwas, das Sie haben können, aber Sie können es vollständig loswerden Ihr Code immer noch wie gewohnt ausgeführt wird. Wenn ich also mein Programm starte, können Sie sehen, dass es läuft, keine Probleme. Wann würden Sie also eine else if-Anweisung verwenden wollen? Nun, immer wenn Sie nach mehr als einer Erkrankung suchen möchten und sie alle verwandt sind , als wären sie hier. Sie können eine else-Anweisung verwenden. Du kannst so viele davon haben, wie du willst, wie ich schon sagte. Und dann können Sie immer noch Ihre else-Anweisung verwenden, um ein Stück Code ausführen zu lassen, wenn alles falsch war. Und wenn ich zu dem zurückkehre, was wir hatten, denken Sie daran, dass sobald eine dieser Bedingungen erfüllt ist, alles andere als Teil dieser anderen if-Aussage hier übersprungen wird. Wenn diese Bedingung erfüllt ist, liest sie einfach, was sich in diesem Codeblock und springt dann ganz nach unten. Wenn der erste falsch und dann der zweite wahr ist, liest er einfach, was sich in diesem Codeblock befindet, und überspringt alles andere. Und wenn dann nichts wahr war, dann wird unsere else-Aussage ausgeführt, wenn wir eine haben. Seien Sie also vorsichtig, aber es liest sich von oben nach unten und dann nur die erste Aussage, die wahr wird, von Bedeutung sein. Also selbst wenn und sonst wenn Aussage hier, wir drehen das um und wir sagten, dass es größer oder gleich ist . Und dann führe unseren Code aus, Nummer eins, ich gebe zehn ein. Für Nummer zwei habe ich zum Beispiel fünf eingegeben. Und es wird nur ausgedruckt, dass der Stift größer als fünf und weniger ist , denn sobald eine dieser Bedingungen zutrifft, kümmert er sich nicht um den Rest unabhängig davon, wie viele andere If-Aussagen Sie haben. Seien Sie also vorsichtig und stellen Sie sicher, dass Sie, wenn Sie zuerst nach einem Zustand suchen möchten , diesen oben haben. Da hast du es. Hoffentlich haben Sie jetzt ein gutes Verständnis dafür, wie IF else-if- und if-else-Aussagen funktionieren. Und wenn nicht, empfehle ich Ihnen dringend zurückzugehen und sich das Video, mit dem Sie Probleme haben, erneut anzusehen und vielleicht ein bisschen mehr damit herumzuspielen nur um besser zu verstehen , wie das alles funktioniert. Nachdem das gesagt ist, werden Sie diese im Laufe des Kurses mehr sehen. So erhalten Sie etwas natürlicheres Üben. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 32. Kapitel 6 (Konditionen): Switch für die (Conditionals):: In diesem Video werden wir uns die Erstellung einer sogenannten Switch-Anweisung ansehen . Und was dies bewirkt, ist im Grunde genommen einen ganzzahligen Wert anzunehmen und dann einen Codeblock basierend auf dem, was dieser Wert ist, auszuführen. Also genau hier habe ich die grundlegende Syntax dafür für dich. Also im Grunde sagen wir switch und alles in Kleinbuchstaben. Und dann werden wir in Klammern unseren ganzzahligen Wert setzen. Und das könnte sogar der Name einer Variablen sein , die ein ganzzahliger Wert ist. Dann werden wir geschweifte Klammern öffnen und schließen. Und darin sagen wir Groß- und Kleinschreibung, alles Kleinbuchstaben, gefolgt von der Zahl. Wir wollen überprüfen, ob diese Nummer so ist. Wir können also sagen, falls diese Zahl eins ist, wollen wir das tun. Danach sagen wir brechen mit einem Semikolon, um diesen Codeabschnitt abzubrechen. Und dann können wir hier unten Fall zwei sagen, wir wollen das tun und dann brechen wir das auch ab. Und wir können das immer wieder und weiter machen. Und dann können wir auch einen Standard haben, oder wir sagen einfach Standard in Kleinbuchstaben gefolgt von einem Doppelpunkt. Dann könnten wir das machen. Dann können wir am Ende auch ein Break-Statement haben, obwohl dieses nicht notwendig ist. dann die geschweifte Klammer schließen, können Sie hier nur eine Fallaussage haben, oder zwei oder drei , oder wie gesagt, so viele Sie möchten. Ich habe nur eine Zwei hier, um Ihnen zu zeigen , dass wir mehr als eine haben können. Hoffentlich war das nicht zu verwirrend für dich. Wenn ja, werden wir weitermachen und eins von Grund auf neu erstellen. Du kannst dir ein besseres Bild davon machen, wie das Ding funktioniert. Nun, ganz schnell, einige von Ihnen haben vielleicht bereits die Verbindung hergestellt , dass dies unserer else-Aussage sehr ähnlich sieht . Nun, das liegt daran, dass es die einzigen wirklichen Unterschiede sind, dass zum einen ein ganzzahliger Wert benötigt wird. Anstatt in der Lage zu sein, unseren Ausdruck, den wir überprüfen möchten, um festzustellen, ob er wahr ist, in einen Fehlerzustand versetzen unseren Ausdruck, den wir überprüfen möchten, um zu können, tun wir einfach etwas, das auf dieser Zahl basiert. Sie können das also so betrachten, als würden Sie f sagen , unsere Nummer eingeben und dann etwas anderes, Ceph die Zahlen, diese Zahl ist diese und dann unsere Else-Aussage. Aber ich möchte Sie nur wissen lassen, dass eine Switch-Anweisung schneller ist. Und in vielen Fällen, wenn Sie nur versuchen herauszufinden, was eine Zahl ist, wird diese viel lesbarer sein. Lassen Sie uns also weitermachen und eines unserer eigenen erstellen. Also hier unten werden wir weitermachen und sagen, dass int response gleich 0 ist. Lassen Sie uns dann weitermachen und sagen, dass der CEO sagen wird: Bitte wählen Sie eine Option. Und ich werde Colon Space sagen. Und dann setzen wir dort auch ein Inline ein. Darunter wird dann eine weitere c out-Anweisung erstellt. Wir sagen, geben Sie eine für die Schaltfläche Hauptmenü und eine Endlinie hier ein, oder erstellen Sie eine neue Zeile. Ich sage nur Backslash n. Für diesen machen wir unten dasselbe, sagen wir Band zu vier Optionen. Einfach so. Und ich werde wieder eine neue Ebene erstellen und darunter wird tatsächlich unser Switch erstellt. Aber bevor wir das tun, lassen Sie uns die Antwort des Benutzers akzeptieren. Also sagen wir Korrespondenz. Dann der Gläubigerwechsel, wenn Sie sich erinnern, sagen wir Switch und alles Kleinbuchstaben. Und dann setzen wir in Klammern eine Ganzzahl oder unsere Variable ein, in diesem Fall Antwort. Und danach werde ich offene und geschlossene geschweifte Klammern haben . Und dann erstellen wir zwischen diesen geschweiften Klammern unsere Fälle. Oder was wir überprüfen wollen, um festzustellen, ob unsere Antwort oder unsere Ganzzahl hier gleich ist. Zum Beispiel sagen wir übrigens Groß-/Kleinschreibung, Leerzeichen eins für unseren Wert , den wir überprüfen möchten, und dann einen Doppelpunkt. Danach sagen wir CL-Hauptmenü. Dann sagen wir weiter und sagen, breche alle Kleinbuchstaben mit einem Semikolon am Ende. Danach erstellen wir einen weiteren Fall für zwei Personen und wir sagen Optionen. Also sag Fall. Coleman SEO-Optionen. Übrigens, für diejenigen unter Ihnen, die Visual Studio verwenden, haben Sie vielleicht bemerkt , dass automatisch ein zweites Anführungszeichen für Sie eingefügt wird. Wenn Sie jedoch am Ende selbst ein anderes Zitat eingeben, wird dies einfach übersprungen. Es wird keine Probleme verursachen. Es wird kein zweites einwerfen und Sie können weiter tippen. Aber es ist schön, dass es Veränderungen für Sie schafft , falls Sie es vergessen. Dann machen wir weiter und setzen ein Semikolon am Ende und wir sagen wieder Pause. Und eigentlich werde ich weitermachen und unser C hier in einer separaten Zeile platzieren. Lass uns töten. Ich denke, es sieht ein bisschen sauberer aus. Dann hier unten, wenn wir wollten, könnten wir noch mehr Kisten einwerfen, nach denen wir suchen müssen. Oder wir können sogar einen Standard eingeben, wenn wir es auch wollen. Und lass uns weitermachen und das nur zum Spaß machen. Also sag Standard. Dann werden wir sagen, dass CL sagen wird, dass Option tatsächlich ist, dass es weitergeht und Ihre Wahl sagt. Wie ich schon sagte, du könntest hier noch eine Panne einwerfen . Wenn Sie dies wünschen, werden einige von Ihnen vielleicht feststellen, dass es symmetrischer aussieht oder was haben Sie, aber es tut nicht unbedingt, SprayC Sie einfach aus diesem Codeabschnitt herausbricht wird nicht durch geschweifte Klammern gehalten, wie wir es in der Vergangenheit gesehen haben. Und auch, obwohl wir nur eine Codezeile haben und nett, und Sie können so viele haben, wie Sie möchten, genau wie jeder andere Codeblock. Jetzt zoome ich hier schnell raus, damit ihr sichergehen könnt , dass ihr das alles kopiert habt. Und wachsen Sie auch schnell für diejenigen unter Ihnen, die sich fragen, was diese kleinen Minusblöcke waren. Für diejenigen unter Ihnen, die Visual Studio und viele andere Programme verwenden , wie das auch ist, können Sie tatsächlich darauf klicken und es wird tatsächlich alles in dem, was auch immer das ist, zusammenbrechen. Dies ist auf If Statements, es geht um Methoden und andere Dinge wie diese, aber es wird immer noch das hinterlassen, was es für Sie ist. Und dann wird es sogar die geschweiften Klammern haben , die hier drei Punkte waren. Und wenn Sie mit der Maus darüber fahren, können Sie sehen , welcher Code gerade minimiert wird. Jetzt funktioniert der Code immer noch. Der Code wird weiterhin ausgeführt. Es ist im Grunde genommen nur minimieren. Ich meine, du kannst jetzt einfach auf diesen Plus-Button klicken und das für dich minimieren. Wenn Sie also vielleicht irgendwann mit viel Code arbeiten und der Bildschirm plötzlich etwas unordentlich aussieht. Sie können das einfach schließen, wenn Sie mit etwas anderem fertig sind oder versuchen, an etwas anderem zu arbeiten. Wie dem auch sei, ich dachte nur, ich zeige es dir schnell. Wie dem auch sei. Wenn ich jetzt unseren Code ausführe, kannst du das sehen. Wählen wir also eine Option, geben Sie eine für mich ein, viele der Typ-2-Optionen. Also lass uns weitermachen und eins eingeben, nur um zu sehen, was funktioniert. Da hast du es. Da steht „Hauptmenü“. Und ich werde tatsächlich eine neue Zeile für beide einwerfen , nur um das ein bisschen zu bereinigen, oder alle, sollte ich so sagen. Und führe unseren Code erneut aus. Wenn wir zwei nehmen, heißt es Optionen. Und wenn wir es hier noch einmal ausführen und einfach eine ganze Zahl außerhalb dessen eingeben , wofür wir uns eingesetzt haben , und die Eingabetaste drücken. Sie können sehen, dass es Ihre Wahl angibt und gültig ist, weil keiner unserer Fälle wahr war. Wie Sie sehen können, funktioniert es sehr ähnlich wie eine else if-Anweisung, außer dass Sie innerhalb dieser Klammern einen ganzzahligen Wert benötigen. Und wenn wir wollten, hätten wir einfach eine Zahl wie diese eingeben und unseren Code ausführen können. Und es wartet immer noch darauf , dass wir etwas als Antwort eingeben. Also kannst du weitermachen und das tun. Aber unabhängig davon, was wir eingeben, heißt es Hauptmenü, denn was auf unserem Switch war, war eines. Und los geht's. Offensichtlich gibt es keinen wirklich guten Grund, warum Sie das tun würden. Normalerweise werfen Sie hier einfach Ihre Variable ein und nehmen einige Eingaben vor, da normalerweise ein Schalter da ist , um nach mehreren Optionen zu suchen, oder? Du nimmst also etwas, das variieren kann. Jetzt wollte ich Sie warnen, insbesondere für diejenigen unter Ihnen, die möglicherweise aus einer anderen Programmiersprache stammen , wenn Sie eine dieser Break-Anweisungen entfernen. Also in unserem Fall hier, wenn ich das entfernt habe, wird es tatsächlich den ganzen Code ausführen, bis er zu einer weiteren Break-Anweisung kommt , unabhängig davon , ob unsere Antwort zwei war. Und wenn wir weitermachen und unseren Code hier ausführen, können Sie sehen, dass das stimmt. Wenn ich zum Beispiel eines eintippe und die Eingabetaste drücke , werden das Hauptmenü und die Optionen gespeichert , obwohl wir eines eingegeben haben. Das liegt daran, dass es ohne diese Pause tatsächlich etwas namens Fall-Through ausführt, bei dem es einfach den gesamten Code in Ihrem Switch durchläuft und gesamten Code in Ihrem Switch durchläuft bis er auf eine break-Anweisung trifft oder am Ende des Schalters. Und wenn ich hier unsere andere Break-Statement herausnehmen würde, können Sie sehen, dass sie sogar Ihre Auswahl ausdrucken würde und gültig ist, wenn wir eine tippen würden. Dieser Fallthrough wird jedoch erst dort beginnen , wo er wahr war. Wenn ich also tippe, wenn ich hier noch einmal ein Programm starte, sollte ich Optionen sagen und dann deine Auswahl und Balance. Also los geht's. Nun, es könnte Fälle geben in denen Sie diesen Fall durchziehen möchten. Vielleicht haben Sie eine nette Idee , wo das nützlich sein wird. Und C plus plus ist eine der wenigen Sprachen, von denen ich weiß, dass Sie das zumindest standardmäßig tun können. Aber normalerweise werden sie wahrscheinlich nicht wollen, dass das passiert. Sie möchten also sicherstellen, dass Sie die Pause nach jedem dieser Punkte außerhalb der Standardeinstellung einlegen, dass sie sowieso automatisch gestoppt wird , sobald sie auf diese geschlossene geschweifte Klammer trifft. Und zum Schluss zeige ich Ihnen nur , wie das aussehen würde. Wäre das eine andere Aussage gewesen, nur um Ihnen die Ähnlichkeiten hier zu zeigen. Wir hätten also sagen können, ob die Antwort gleich eins ist, und sie dann außerhalb der Pause hier in unseren Code einfügen können. Und darunter legen wir fest, dass die Schriftart gleich zwei ist. Darunter können wir einfach etwas anderes sagen und das einfügen. Hoffentlich können Sie die Ähnlichkeiten hier erkennen. Wie gesagt, sie funktionieren im Grunde genauso. Dies ermöglicht es uns jedoch, es in einen viel größeren Zustand zu versetzen . Wir wollen überprüfen, ob es wahr ist oder ob dies gerade einen ganzzahligen Wert eingegeben hat. Und persönlich, wenn Sie das tun, überprüfen Sie nur einen ganzzahligen Wert und möchten sehen, was er ist. Ich glaube, das sieht viel sauberer und es läuft auch schneller. Also los geht's. Sie wissen jetzt, wie man eine switch-Anweisung erstellt. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 33. Kapitel 6 (Konditionen): Ternary Betreiber: In diesem Video werfen wir einen Blick auf Arbeit mit dem sogenannten ternären Operator. Möglicherweise wird dies auch als bedingter Operator bezeichnet . Die Syntax für einen ternären Operator lautet also als solche, Sie haben eine Bedingung, die Sie überprüfen möchten, ob sie wahr oder falsch ist. Und dann folgt ein Fragezeichen. Danach haben Sie einen Ausdruck oder einen Code, den Sie ausführen möchten. Wenn diese Bedingung zutrifft, gefolgt von einem Doppelpunkt. Und dann ein zweiter Ausdruck oder ein Teil des Codes, den Sie ausführen möchten, wenn diese Bedingung falsch ist. Und zuletzt schließen Sie das mit einem Semikolon ab. Nun, unten hier unten, habe ich bereits ein Beispiel für Sie, nur um Ihnen zu zeigen , wie das funktioniert. Und keine Sorge, wir werden eine eigene erstellen. Ich wollte dir nur zeigen, wie das in der tatsächlichen Schrift oder im Code aussehen könnte . Also mein Zustand, das ist eins größer als fünf, gefolgt von einem Fragezeichen und dann meinem ersten Ausdruck oder einem Stück Code hier. Also in diesem Fall sagte ich C aus hallo, dann hatte ich meinen Dickdarm. Und dann der zweite Ausdruck oder Teil des Codes, ich ausführen möchte, wenn die Bedingung falsch war. Also dieses C raus. Da dieser nicht größer als fünf ist, wird dieser Code ausgeführt. Wenn ich mein Programm hier starte. Sie können sehen, dass dort kaufen steht. Aber wenn wir das hier umdrehen und fragen: Ist einer weniger als fünf? Weil das stimmt. Dann führt unser erster Code hier, der sich auf der linken Seite unseres Doppelpunkts befindet , den Code erneut aus. Sie können sehen, dass dort Hallo steht. Außerdem möchte ich Sie darauf hinweisen, dass ich nach meinen doppelten Anführungszeichen kein Semikolon gesetzt habe. Und das liegt daran, dass dies das Ende der Aussage ist , nicht das. Ordnung, also lasst uns weitermachen und einen unserer ganz jungen erschaffen. Also werde ich weitermachen und das entfernen. Und dann sagen wir eins. Und darunter sagen wir die CN-Nummer, richtig? Also nehmen wir eine Zahl, die wir eingeben. Und dann lasst uns weitermachen und Kreditternärbetreiber. Also sagen wir num eins größer als 0. Und das wird unser Zustand sein. Danach setzen wir unser Fragezeichen und folgen dem mit einem Ausdruck oder einem Code, den wir ausführen möchten, wenn diese Bedingung erfüllt ist. Also sagen wir C raus, nicht eins. dann in Anführungszeichen weitermachen und sagen, Lassen Sie uns dann in Anführungszeichen weitermachen und sagen, dass es sich um eine positive Zahl handelt. Dann folgen wir dem mit einem Doppelpunkt. Danach sagen wir wieder C raus. Nummer eins. Und dann sagen wir dieses Mal, dass es negativ ist. Beachten Sie, dass ich vor beiden ein Leerzeichen gesetzt habe , weil es standardmäßig keines geben wird, nachdem unsere Nummer eins ausgedruckt wurde oder dort eine Ganzzahl vorhanden ist. Wenn wir den Code ausführen, könnte ich etwa fünf sagen. Nehmen wir an, fünf ist eine positive Zahl. Okay? Aber wenn wir das noch einmal ausführen und ich negative Fünf und Mitte setze, sagen sie, dass negative Fünf eine negative Zahl ist. Und das liegt daran, dass wir gesagt haben, dass diese Zahl eins größer als 0 ist. Wenn ja, sagten wir, wir wollten ausdrucken, Nummer eins ist eine positive Zahl. Und wenn es nicht größer als 0 wäre, wollten wir ausdrucken, dass Nummer eins eine negative Zahl ist, oder? Da hast du es. Das ist die grundlegende Art, einen ternären Operator zu verwenden. Und oft werden Sie sehen, dass dies im Grunde anstelle einer if else-Anweisung verwendet wird . Lassen Sie uns also weitermachen und erstellen, wie dies als FL-Statement aussehen würde . Wir hätten einfach sagen können, wenn eins größer als 0 ist. Und dann drinnen ausgedruckte Nummer eins eine positive Zahl. Also kopiere ich das einfach und füge es von oben ein. Und darunter sagen wir etwas anderes und fügen es ein. Und wir müssen sicherstellen, dass wir am Ende unserer beiden C-Out-Anweisungen ein Semikolon setzen . Und los geht's. So hätten wir dasselbe mit einer if-else-Anweisung machen können. Aber es gibt noch ein paar weitere Möglichkeiten, wie wir dies nutzen können. Also lasst uns weitermachen und uns das ansehen. Und ich werde weitermachen und unsere Wenn-else-Aussage entfernen. Schauen wir uns nun eine andere Möglichkeit an , wie wir den ternären Operator verwenden können. Also hier unten, lass uns weitermachen und String-Ergebnis sagen. Und wir setzen dies auf einen ternären Operator. Also genau hier sagen wir num eins größer als 0, gefolgt von einem Fragezeichen. Und dann, je nachdem, was das ist, wollen wir unsere Zeichenfolge einfach gleich zwei ist eine positive Zahl oder eine negative Zahl, irgendwie wie wir es zuvor getan haben. Es ist genau hier. Dann folge mit einem Doppelpunkt und füge dann diese andere Zeichenfolge hier ein. Dann unser Semikolon ganz am Ende. Jetzt haben wir eine Zeichenfolge namens result erstellt und setzen sie gleich dem Ergebnis dieses ternären Operators, dieser gesamten Operation hier. Es wird also als Zahl eins größer als 0 heißen. Wenn ja, wird unsere Zeichenfolge dem entsprechen. Und wenn nicht, dann wird unsere Saite dem entsprechen. Und jetzt hier unten, lass uns das ausdrucken. Also sagen wir C aus Nummer eins. Danach drucke ich das Ergebnis aus und erstelle eine neue Zeile wie diese. Dann lassen Sie uns weitermachen und unsere vorherige ternäre Operation dort entfernen und unseren Code ausführen. Nun können Sie sehen, dass es so ziemlich genauso funktioniert wie zuvor, mit dem einzigen Unterschied, dass wir diesen ternären Operator hier tatsächlich verwendet haben, um etwas zu setzen, das einem Ergebnis entspricht. basierend darauf hier. Und lassen Sie uns weitermachen und dies einmal in eine Wenn-Else-Erklärung aufnehmen. Nehmen wir an, wenn taub eins größer als 0 ist, dann wollen wir hier ein Ergebnis setzen, das diesem entspricht. Andernfalls setzt Alice das Ergebnis gleich zwei ist eine negative Zahl. So. Jetzt können Sie verwenden, was Sie wollen, was auch immer Sie für Ihre aktuelle Situation in Ihrer Programmierung bevorzugen . Ich wollte dir nur die verschiedenen Möglichkeiten zeigen , wie du das nutzen kannst. Und es gibt noch einen letzten Weg , den wir durchgehen werden, nämlich dass Sie ternäre Operationen tatsächlich verschachteln können. Also alles außerhalb unserer Integer-Deklaration und unserer Sündenlinie, Lass uns weitermachen und loswerden. Dann. Lass uns weitermachen und einen String erstellen und ihn aufgelöst nennen. Und wir werden dem jetzt keinen Wert geben . Also hier unten werden wir weitermachen und das Ergebnis sehen. Setze das gleich auf. Lassen Sie uns weitermachen und die Bedingung für den ternären Operator einrichten. In Klammern sagen wir also, dass num eins gleich 0 ist. Dann folgen wir dem mit einem Fragezeichen in Anführungszeichen , einfach so. Dann setzen wir einen Doppelpunkt ein und dann eine weitere ternäre Operation. Also mach weiter und setze eine offene Klammer. Und wir sagen num eins größer als 0, gefolgt von einer geschlossenen Klammer. Dann setzen wir es in ein anderes Fragezeichen. Und wir werden dort positive Zitate sagen. Danach setzen wir dort einen Doppelpunkt gefolgt von einem negativen in Anführungszeichen ein. Und dann setzen wir enge Klammern und ein Semikolon ein. Und dann hier, wo wir num eins größer als 0 gesagt haben, setzen wir offene Klammern ein. Ordnung, also lasst uns weitermachen und das aufschlüsseln. Persönlich denke ich, dass es verwirrend aussieht, aber wenn Sie das in einem Code von jemandem sehen, möchte ich, dass Sie dies lesen können und wissen, wie das funktioniert. Also ganz schnell, um das zu erwähnen. Ja, wir hätten die ganze Sache einfach hier reinstellen können. Ich wollte einfach nicht mehr zu diesem ohnehin schon verrückten Zeug hinzufügen . Granitic will nur eine Zeichenkette setzen. Wie auch immer, lass uns weitermachen und das durchgehen. Also setzen wir ein Ergebnis gleich, und dann wollten wir es gleich setzen, was auch immer das Ergebnis dieser ganzen verrückten Sache war. Wir sagten, ist num eins gleich 0. Wenn ja, dann möchten wir sagen, dass das Ergebnis gleich 0 ist. Okay, cool. Wenn also Zahl Eins gleich 0 ist, sagen wir 0. Aber wenn es nicht gleich 0 ist, machen wir hier eine weitere ternäre Operation. Also ist ich num eins größer als 0. Also wollen wir das Ergebnis gleich positiv setzen und f nichts ist gleich negativ. Und dann setzen wir all diese Klammern ein, um sicherzustellen, dass die Reihenfolge der Operationen korrekt war. Also sagte er als Zahl eins gleich 0, wenn ja, dann sagten wir 0. Wenn nicht, dann wollten wir das Ergebnis gleich dem setzen, was in diesen Klammern steht, die wir mit dieser ganzen Operation machen wollten. Zuerst haben wir für diese Bedingung Nummer eins größer als 0 gesagt, wenn ja, dann beginnen wir mit dem Positiven. Wenn nicht, setzen wir es auf negativ. Und so haben wir das einfach zwischen die eigenen Klammern geworfen , um sicherzustellen, dass das Ergebnis dem vollen Ergebnis dieser Operation entspricht , oder? Da hast du es also. Sie wissen jetzt, wie man den ternären Operator verwendet. Ich persönlich benutze das nicht oft, aber ich habe es in einer Menge Code anderer Programmierer gesehen. Also wollte ich sicherstellen, dass ich diesen Kurs absolviere , damit ihr wisst, was er ist, was er bedeutet und wie er funktioniert. Und wer weiß. Vielleicht gefällt es Ihnen persönlich sehr gut und Sie möchten es für sich selbst verwenden. Wie auch immer, das ist es für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 34. Kapitel 7 (Schlaufen): Einführung in die Schlaufen.: In diesem Video gebe ich Ihnen nur eine kurze Einführung in Loops und Programmierung. In den kommenden Videos werden wir verschiedene Arten von eigenen Sprüngen erstellen . Also genau hier habe ich die grundlegende Syntax oder eine Regel für die Funktionsweise einer Schleife. Im Grunde haben Sie eine Bedingung, und diese Bedingung funktioniert genauso wie in einer if-Anweisung. Wenn diese Bedingung erfüllt ist, werden wir im Wesentlichen einen bestimmten Codeblock ausführen. Und nachdem dieser Codeblock ausgeführt wurde, wird erneut überprüft, ob diese Bedingung wahr ist. Und wenn ja, machen wir das nochmal. Und es wird das einfach immer und immer wieder tun und bis unser Zustand falsch ist. Sobald diese Bedingung falsch ist, bricht sie aus der Schleife aus und liest weiter Code. Da drin hast du es. Im Grunde werden wir die Bedingung haben, und diese Bedingung ist wahr. Wir werden etwas Code ausführen und diesen Code so lange ausführen , bis die Bedingung falsch ist. Hoffentlich ergab das Sinn. Wenn nicht, werden Sie in den kommenden Videos mehrere Beispiele dafür sehen . Also wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 35. 34: In diesem Video werden wir über die While-Loop sprechen, die wahrscheinlich die grundlegendste Schleife ist, die Sie sehen werden. Ich habe die Syntax dafür genau hier. Was du also tun wirst, ist, dass du gut schreibst und alles in Kleinbuchstaben geschrieben hast. Und dann setzen Sie in Klammern eine Bedingung, die Sie überprüfen möchten, um festzustellen, ob sie wahr ist, dann wow, diese Bedingung ist wahr. Du wirst alles tun, was du in deinem Codeblock oder deinen geschweiften Klammern hast. Danach wird dieser Codeblock so lange ausgeführt , bis diese Bedingung falsch ist. Also lasst uns weitermachen und eines unserer eigenen schreiben. Und ich werde auch über einige der Probleme sprechen , auf die Sie stoßen können, wenn Sie nicht vorsichtig sind. Lassen Sie uns jetzt weitermachen und eine Ganzzahl erstellen. Ich rufe diesen Iterator auf und setze ihn auf Null. Dann, nun, das wird unsere ganze Schleife erstellen. Also sagen wir, wow. Und dann sagen wir in Klammern, dass der Iterator weniger als 100 ist. Und wenn Sie das in geschweifte Klammern ziehen , wird ein Codeblock erstellt , den wir ausführen möchten. Also lasst uns weitermachen und so etwas wie CL-Iterator sagen. Dann in der Reihe. Gehen Sie uns hier nicht voraus und führen Sie diesen Codeblock aus, da dies Ihr Programm zum Absturz bringen kann, wenn nicht Ihren Computer und Jenna, und ich sage Ihnen warum. Wir haben also einen int-Iterator gleich Null. Und dann sagten wir, nun, unser Iterator ist weniger als 100. wollen wir ausdrucken. Aber diese Bedingung wird niemals falsch sein, oder? Also wird es durchlaufen, es wird den Iterator ausdrucken. Und dann heißt es: In Ordnung, überprüfen wir noch einmal unseren Zustand. Die Bedingung ist immer noch wahr. Lass uns das immer wieder machen und immer wieder und immer wieder. Was wir also tun müssen, ist einen Weg zu finden, damit unser Zustand falsch ist. Denn wenn Sie das nicht tun, wird dieser Code unendlich ausgeführt. Also hier unten werden wir weitermachen und es sagen, Iterator plus, plus. Ich setze am Ende ein Semikolon. Jetzt wird unser Iterator jedes Mal um eins erhöht , wenn dieser Codeblock ausgeführt wird, dann überprüft er den Zustand und wird dies so lange tun, bis der Iterator gleich 100 ist , weil dann es werden nicht mehr weniger als 100 sein. Also mach weiter und führe den Code aus. Wie Sie sehen können, wurden sofort verschiedene Codezeilen von Null bis 99 ausgedruckt . Und wenn wir eins bis 100 ausdrucken wollten, könnten wir z. B. einfach unseren Iterator in eins ändern und diesen Wert kleiner oder gleich 100 sagen lassen . Wir haben das noch einmal ausgeführt, wir werden einen bis 100 ausdrucken . Nun ist zu beachten , dass die Bedingung erst am Ende des Codeblocks erneut überprüft Bedingung erst am Ende des Codeblocks erneut wird. Also wird jedes Mal alles in deinem Block ausgeführt , wenn diese Bedingung erfüllt ist, und überprüfe dann die Bedingung erneut. Und erst wenn diese Bedingung falsch ist, was bricht da raus und liest weiter Ihren Code. Wenn wir also z.B. hier unten C raus gesagt haben, fertig, eine N-Zeile dorthin geworfen haben und unseren Code erneut ausführen. Sie können sehen, dass es fertig ausgedruckt wird, sobald es 100 erreicht . Nun, eine weitere Sache, auf die ich Sie aufmerksam machen möchte, die sowohl mit if-Aussagen als auch mit dieser funktioniert, weil eine dasselbe ist wie wahr, weil sie nicht als Held ist. Im Wesentlichen ist es dasselbe, einen hier zu platzieren, wie wahr zu sagen. Und hier die Null zu setzen ist dasselbe wie falsch zu sagen. Null ist also dasselbe wie falsch und eins ist dasselbe wie wahr. Jeder, den du hier niemals als wahr eintragen möchtest . Denn obwohl dies möglich ist, werden Sie nicht in der Lage sein, dies falsch auszusprechen. Also los geht's. Ich weiß, wie man eine While-Schleife erstellt und benutzt . Und ja, das kannst du. Sie helfen dabei, Schleifen und if-Anweisungen oder welchen Code auch immer Sie wollen darin zu setzen . Um es noch einmal zusammenzufassen, um eine While-Schleife zu erstellen, werden Sie nur sagen, nun, Sie werden eine Bedingung setzen, die irgendwann falsch werden kann und im Kontext Ihrer Schleife falsch wird. Vorher hatten wir also einen Iterator von weniger als oder gleich 100, und dann hatten wir eine Möglichkeit , diese Bedingung falsch zu machen , wenn es nicht schon der Fall war , als wir auf die Welt kamen. Denn wenn dieser falsch ist, wäre er von vornherein übersprungen worden. Sie werden also sagen, nun, in Klammern haben Sie eine Bedingung, die im Kontext Ihrer Schleife falsch werden kann , wenn sie nicht bereits falsch ist. Und schließlich haben Sie Ihren Codeblock. Was wir hier gemacht haben, wo wir jedes Mal einen Iterator durchlaufen mussten . Unsere Loop-Marke ist eine sehr verbreitete Methode, um irgendwann aus einer Schleife auszubrechen . Bevor wir zum Abschluss kommen, schauen wir uns einen anderen Anwendungsfall dafür an. Gehen wir also zu unserer Mitte und sagen wir int-Antwort. Setze das gleich eins. Und dann Dumbo, das wird sagen, wow, in Klammern wird die Antwort senden ist nicht gleich Null. Und dann sag in unseren geschweiften Klammern C raus. Bitte nehmen Sie Null und stellen Sie ein, auf das als Antwort See steht. Jetzt schreiben wir eine Tinte namens Response zu und diese ist gleich eins. Und dann sagten wir, dass eine Antwort nicht gleich Null ist, was definitiv nicht das erste Mal sein wird. Wir drucken aus, bitte geben Sie Null ein und drücken Sie die Eingabetaste. Und wenn der Benutzer keine Null eingibt, wird dieser Code erneut ausgeführt. Sobald sie jedoch Null eingegeben haben, heißt es einfach fertig. Wenn wir also ein Programm ausführen, heißt es Bitte nimm Null und drücke Enter. Und wir können eine beliebige Zahl nehmen und Enter drücken. Und es wird uns bitten, es noch einmal zu tun. Wir könnten das für immer tun, wenn wir es wollen. Andernfalls, wenn wir Null eingeben und die Eingabetaste drücken, wird „Fertig“ angezeigt, und los geht's. Das ist also nur ein weiteres Beispiel dafür , wie wir unsere While-Schleife hätten nutzen können und eine Möglichkeit hatten, aus ihr auszubrechen , ohne einen Iterator zu verwenden. Nun, ganz schnell, möchte ich etwas sehr klarstellen. Wenn wir hier oben wären Antwort gleich Null setzen würden, zB dann in unserer While-Loop-Bedingung , diese Antwort ist gleich eins, das würde tatsächlich für immer laufen. Und der Grund dafür ist , dass wir tatsächlich eine Antwort zuweisen würden . Wir sagen also, Antwort ist gleich eins. Und aus diesem Grund würde die While-Schleife dies tatsächlich als genau das betrachten. Und wie wir wissen, ist eines dasselbe wie wahr zu sagen. Das könnte also genauso gut sagen: Ja, stimmt. Obwohl wir die Überprüfung meinten, ob Antwort gleich eins war. Sie also jedes Mal, wenn Sie mit einer Bedingung arbeiten , sicher, dass Sie niemals nur den Zuweisungsoperator verwenden. Und Sie sagen immer, dass es gleich ist , indem Sie zwei Gleichheitszeichen eingeben, da Sie Ihr Programm definitiv nicht zum Absturz bringen möchten, besonders wenn dies ein Teil des Codes ist, an dem Sie schon lange gearbeitet haben und habe nicht gespeichert oder so ähnlich. Es kann ziemlich traumatisch sein. Also wollte ich dir nur einen Hinweis darauf geben. Hoffentlich wissen Sie jetzt, wie man eine While-Schleife schreibt und benutzt, und können sich sogar einige Beispiele vorstellen und wo dies nützlich wäre. Wie auch immer, ich möchte eigentlich, dass ihr weitermacht und rettet, was ihr hier habt. Also werden wir es im nächsten Video verwenden, wenn wir über eine Do-While-Loop sprechen. Also wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 36. Kapitel 7 (Schlaufen): Tue während der Schlaufen: In diesem Video werden wir über etwas sprechen, das als Do-While Loop bezeichnet wird . Und wenn du dich im letzten Video erinnerst, habe ich dich gebeten, alles zu speichern, was du hattest. Wenn Sie das aus irgendeinem Grund nicht getan haben, machen Sie sich keine Sorgen. Mach einfach weiter und pausiere das Video. Kopieren Sie diesen kleinen Code hier, und schon können Sie loslegen. Also habe ich hier die grundlegende Syntax für eine Do-While-Schleife. Die Regel wert, wie man eine schreibt. wirst du in Kleinbuchstaben tun. Und dann haben Sie in geschweiften Klammern Ihren Codeblock, den Sie mindestens einmal ausführen möchten . Und es wird nur einmal laufen, egal was passiert. Danach werden Sie sagen, nun, genau wie wir es in der Vergangenheit getan haben, und dann in Klammern, Sie werden eine Krankheit haben. Wenn diese Bedingung wahr ist, wird Ihr Codeblock immer wieder ausgeführt bis die Bedingung falsch ist, dann benötigen Sie auch ein Semikolon nach dieser Bedingung. Der Hauptunterschied zwischen einer do-while-Schleife, einer While-Schleife, abgesehen davon, wie sie als Codeblock geschrieben wird , wird einmal ausgeführt, egal was passiert. Und dann werde ich es nur wiederholen, solange die Bedingung stimmt. Ordnung, also lasst uns einen Blick darauf werfen wie wir das schaffen und eines für uns selbst erstellen können. Also hier unten werden wir unsere While-Loop in eine Do-While Loop umwandeln , nur um Ihnen zu zeigen, wie vergleichbar sie wirklich sind. Also genau hier sagen wir do in Kleinbuchstaben. Und dann schneiden wir unseren Codeblock hier von unserer vorherigen Zeitschleife ab und platzieren ihn vor dem Wort do. Und dann, nach einer Weile, setzen wir einfach so ein Semikolon. Und los geht's. Wir haben jetzt eine Do-While-Schleife erstellt. Was es jetzt tun wird, ist zu sagen Bitte geben Sie 0 ein und drücken Sie die Eingabetaste. Und dann lasse ich den Benutzer in diesem Fall eine Antwort geben , die wir sind. Und dann, während die Antwort nicht gleich 0 ist, aber sie machen weiter und ändern, dass es sich immer wieder wiederholen wird. Und wenn wir fertig sind und es heißt: Lass uns weitermachen und das in so etwas wie Danke ändern. Wenn wir jetzt unseren Code ausführen, heißt es Bitte geben Sie hier ein und drücken Sie die Eingabetaste als Antwort. Und solange diese Antwort nicht 0 ist, wird sie sich immer wieder wiederholen. Was ist a ist 0, es wird sagen, danke. Wenn wir also unseren Code hier ausführen, können Sie sehen, dass es heißt, bitte geben Sie 0 und wir können eingeben, was wir wollen , und immer wieder Enter drücken bis wir tatsächlich 0 eingeben. Dann treten wir ein, es wird Danke sagen, und los geht's. Beachten Sie also, dass dieser Code ausgeführt wurde, obwohl die Antwort in dieser Bedingung gleich 0 war, weil die Antwort 0 war. Das wäre nur wahr gewesen und es war nicht gleich 0. Wie gesagt, der einzige Unterschied zwischen einer while loop und einer do while loop ist die Syntax oder wie Sie sie dort schreiben werden, und die Tatsache, dass Ihr Code einmal ausgeführt wird. Unabhängig davon, welche Antwort zuvor war, wird dieser Code einmal ausgeführt. Und dann wird überprüft, ob die Antwort 0 ist, bevor dieser Code ausbricht. Da wir gesagt haben, wenn die Antwort ungleich 0 ist, wollten wir diesen Code weiter ausführen. Und da hast du es. Sie wissen jetzt, wie man eine Do-While-Schleife erstellt. Wie auch immer, das ist es für dieses Video. Danke fürs Zuschauen und wir sehen uns beim nächsten. 37. Kapitel 7 (Schlaufen): Für Schlaufen, für Schlaufen.: In diesem Video werden wir uns mit dem Erstellen und Arbeiten mit einer sogenannten for-Schleife befassen. Ich habe die grundlegende Syntax für eine für dich genau hier. Also zuerst sparst du in Kleinbuchstaben und dann in Klammern, wir haben ein paar verschiedene Dinge. Zunächst einmal wird eine Variableninitialisierung durchgeführt. Und keine Sorge, ich werde dir hier gleich zeigen , was ich damit meine. Dann folgen Sie dem mit einem Semikolon. Und danach wirst du eine Krankheit haben. Let's Condition funktioniert genauso wie in jeder anderen Schleife. Während die Bedingung erfüllt ist, wird sich Ihr Code weiterhin wiederholen. Und danach haben Sie eine Variablenaktualisierung, bei der Sie die Variable aktualisieren , mit der Sie sie erstellen. Lassen Sie mich also weitermachen und Ihnen ganz schnell zeigen , wie das aussieht. Ich wollte Sie wissen lassen, dass all diese Dinge technisch ohne Fehler aus einer For-Schleife entfernt werden können, solange Sie die beiden Semikolons darin lassen. Wenn Sie jedoch nicht die Bedingung haben , die dort in der Mitte liegt, wird dies immer als wahr angesehen. Und Sie hätten eine Endlosschleife, die Sie, wie ich in der Vergangenheit sagte, normalerweise immer vermeiden möchten. Also lasst uns weitermachen und eine For-Schleife erstellen. Und Frauen erstellen eine For-Schleife. Wir werden tatsächlich versuchen , das gleiche Ergebnis zu erzielen das gleiche Ergebnis mit unserer While-Schleife in einem früheren Video, dem wir eins bis 100 in separaten Zeilen ausgedruckt haben. Nur damit ich Ihnen zeigen kann, ob die Unterschiede zwischen einer for loop und einer while Schleife bestehen. Also mach einfach ab, wir sagen vier. Und dann sagen wir in Klammern int I gleich 0, das Semikolon am Ende. Und da hast du es. Genau dort haben wir unser Variableninitialisierungsdach erstellt und eine Variable initialisiert. Und du kannst es nennen, wie du willst. Sie können dies auch auf alles setzen, was Sie wollen, aber oft ist es die häufigste Abkürzung für Iterator, wenn Sie es gleich 0 setzen und sehen , dass es I heißt . Und Sie werden gleich sehen, warum . Als Nächstes haben wir unseren Zustand. Also sagen wir, ich bin kleiner oder gleich 100. Danach setze ich kein Semikolon. Und gleich danach werden wir unsere Variablen überall dort aktualisieren lassen , wo Sie den Wert unserer Variablen aktualisieren werden . Also sagen wir mal ich plus, plus. Und dann haben wir unseren Codeblock hier drin. Wir drucken es einfach aus, ich sage C0. Und dann erstellen wir eine neue Linie wie diese. Und diese Schleife ist so wie sie ist gut zu gehen. Lassen Sie uns also zusammenfassen, was hier vor sich geht. Also sagten wir für, um zu erklären, dass wir eine For-Schleife erstellen. Und dann haben wir in Klammern all die Dinge, die für Loop grundlegend sind , Wir haben von Variablen gehört, wo wir gesagt haben, dass int I gleich 0 ist. Dann setzen wir ein Semikolon , um dies von der Bedingung zu trennen, lassen Sie mich sagen, ich bin kleiner oder gleich 100. Dies ist die Bedingung , die erfüllt sein muss damit eine for-Schleife überhaupt ausgeführt werden kann. Und wenn es weiterlaufen soll, muss das auch weiterhin stimmen. Und dann, nach jedem Durchlaufen unseres Codes, wird er I um eins erhöhen. Und wir hätten auch einfach sagen können, dass I plus eins ist oder ich gleich I plus eins. Es spielt wirklich keine Rolle. Dies ist nur der Speicherplatz , den Sie für die Aktualisierung Ihrer Variablen haben möchten . Oft sehen Sie auf diese Weise einen For-Loop-benoteten I gleich 0, I mit einer Bedingung und dann plus, plus oder plus ich . Wie gesagt, ich bin die Abkürzung für Iterator, aber du kann das nennen, wie du es willst. Und dann haben wir statt für eine Schleife einfach weitergemacht und es ausgedruckt. Ich habe dann eine neue Zeile erstellt. Und was das bewirken wird, ist 0 bis 100 auszudrucken. Aber wenn wir das hier in eins ändern, drucke ich einfach 100 aus. Also lasst uns weitermachen und unseren Code ausführen. Und los geht's, einer durch eine 100. Wenn Sie also eine For-Schleife erstellen, erstellen Sie normalerweise eine Art Variable, mit der Sie arbeiten können. Sie haben die Bedingung , dass Sie erfüllt werden möchten. Und wenn diese Bedingung erfüllt ist, läuft sie durch Ihren Code. Und nachdem es Ihren Code durchlaufen hat, wird es zu Ihrer Variablen bis hierher gehen und alles tun, was ihm gesagt wird. In diesem Fall sagten wir also I plus plus. Also werde ich um eins zunehmen , weil ich plus plus das tut, wie wir aus der Vergangenheit wissen. Und dann, nach diesem Variablen-Update, wird es unseren Zustand überprüfen. Schon wieder. Wenn unsere Bedingung immer noch nicht erfüllt ist, durchläuft sie diesen Codeblock erneut. Sobald diese Bedingung falsch ist, fährt er mit unserem Code fort. Und das wissen wir aus der Vergangenheit. Und wenn wir wollten, könnten wir C0 sagen, fertig hier unten und so eine Zeile. Und was es getan hat, wird es ausgedruckt. Okay. Was wäre, wenn wir I nicht nur um eins erhöhen wollten? Nun, wie ich schon sagte, du weißt schon, stell hier rein, was du willst. Dies ist jedoch der Ort, an dem Sie Ihre Variable aktualisieren möchten . Wir könnten also sagen, ich bin gleich I plus zwei. Und los geht's. Und es wird eines ausdrucken, weil unser Zustand wahr war. Ich finde es immer ausgedruckt und dann zu mir hinzugefügt. Also war ich jetzt drei. Das sind immer noch weniger als 100 ausgedruckte drei, und so weiter. Und wenn wir diese hier auf 0 ändern würden, dann würden im Grunde nur alle geraden Zahlen ausgedruckt . Wie Sie sehen können, 24681012 und so weiter. Ordnung, also wann würdest du eine for-loop statt einer whille-Schleife verwenden? Nun, zum einen ist eine for-Schleife schneller als eine While-Schleife. Außerdem möchten Sie normalerweise eine For-Loop verwenden, wenn Sie genau wissen , wie oft Sie eine Schleife durchlaufen möchten Machen wir einfach so etwas. Ich bin weniger als zehn. Wir drucken das I aus und erhöhen es um eins. Wenn wir es jetzt durchgehen, läuft es genau zehnmal durch. Also haben wir 12345678910. Wenn Sie also wissen, wie oft Sie eine Schleife durchlaufen möchten, verwenden Sie normalerweise eine for-Schleife, wenn die Bedingung erfüllt ist, dass Sie erfüllt sein müssen , um nicht mehr live zu laufen. Da es komplexer ist, sollten Sie normalerweise eine While-Schleife verwenden. Und dann möchten Sie für eine Do-While-Schleife das nur verwenden, wenn Sie wissen, dass ein Teil des Codes mindestens einmal ausgeführt werden soll, und dann möchten Sie, dass er wiederholt wird, wenn eine Bedingung erfüllt ist. Aber die meiste Zeit werden Sie wahrscheinlich nur für Loops und While Loops verwenden. Um dieses Video abzuschließen, möchte ich schnell zu dem zurückkehren , worüber ich vorhin möchte ich schnell zu dem zurückkehren gesprochen habe wo ich gesagt habe, dass wir einfach so eine For-Loop haben können. Und das wird völlig gültig sein. Ohne eine Bedingung wird es jedoch unendlich laufen. Davon abgesehen ist dies gültig und Sie können alles eingeben, was Sie wollen. Lassen Sie uns ganz schnell ein Beispiel durchgehen alles außer unserem Zustand herausnehmen. Also hätten wir int i sagen können. Dann könnten wir in unserer Variableninitialisierung einfach i gleich 0 setzen, oder wir hätten es komplett herausnehmen und sagen können, dass ich hier oben gleich 0 bin und einfach keine Variableninitialisierung. Wir benötigen jedoch immer noch das Semikolon, um es von der Bedingung hier zu trennen. Dann sagten wir iOS-Absicht und könnten sogar unser Variablen-Update herausnehmen. Kein Problem. Wenn wir das jedoch tun, wie gesagt, möchten Sie immer sicherstellen, möchten Sie immer sicherstellen es eine Möglichkeit gibt, dass Ihre Schleife innerhalb des Bereichs Ihrer Schleife dort stoppt. Innerhalb unserer Schleife hätten wir also „ I plus Code“ sagen können. Und wie Sie hier sehen können wie zuvor, keine Probleme. Sie müssen hier nicht alles in derselben Zeile haben, und es wird einwandfrei funktionieren. Stellen Sie einfach sicher, dass Sie noch eine Möglichkeit haben, aus der Schleife auszubrechen , und dass Sie eine Variable haben , mit der Sie tatsächlich arbeiten können. Deshalb haben wir es hier geschaffen. Ich wollte dir nur zeigen, dass das möglich ist. Die meiste Zeit werden Sie das wahrscheinlich nicht tun, aber das ist eine Option. Und falls Sie das im Code einer anderen Person sehen, wissen Sie warum, Sie wissen, wie es funktioniert und so weiter. Aber die meiste Zeit werden Sie es wahrscheinlich einfach so machen , wie wir es zuvor getan haben. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 38. 37: In diesem Video werden wir über das Verschachteln von Loops sprechen. Und Nested Loops ist im Grunde das gleiche Konzept wie bei der Verschachtelung von Anweisungen. Es ist im Grunde nur eine Schleife innerhalb einer Schleife. Und Sie können es immer wieder tun, genau wie Sie es mit diesen Aussagen oder irgendetwas anderem tun könnten . Schauen wir uns also an, wie das funktionieren könnte. Also werden wir für dieses Beispiel ein paar For-Loops erstellen . Also sagen wir für int ist ich gleich Null, ich weniger als zehn, und dann plus plus. Denken Sie daran, dass so ziemlich all Ihre grundlegenden For-Loops aussehen werden. Also wie dem auch sei, hier drinnen werde ich CL sagen. gefällt mir einfach. Darunter erstellen wir eine weitere für eine Schleife. Also werde ich sagen, denn j ist gleich Null, j ist kleiner als zehn. J plus plus. Und der Codeblock dafür, ich sage einfach cl j. Und bevor ich einen Code ausführe, lass uns weitermachen und die M-Zeile von hier oben entfernen . Oder wir sagten CRI und ich gehe. Schauen wir uns an, was hier passiert ist. Also haben wir zuerst Null ausgedruckt , weil ich das war. Und dann springen wir in unsere andere für eine Schleife. Und wir nennen das einfach unser j for-loop-Pronomen. Auch eine andere Möglichkeit, von Schleifen zu hören, die bezeichnet wenn Sie Nistschleifen als innere und äußere haben. Zuerst druckte ich aus, das war Null, und dann druckt es j aus, was auch Null war. Dann wurde J um eins erhöht. Also war j gleich eins, was immer noch weniger als zehn ist. Und so hat es J wieder in einer neuen Zeile gedruckt , weil wir diese N-Zeile hier haben. Und das spüre ich bis neun. Als ich neun erreichte, war Jay nicht mehr weniger als zehn. Also hat es j nicht wieder ausgedruckt. Dann wurde ich um eins erhöht. Also war ich jetzt einer und es druckt es aus. Danach begann unsere for-Schleife über j war gleich Null. J ist weniger als zehn. Drucke j aus, j war Null und ging wieder ganz durch neun. Und ich habe das weiter gemacht und das gemacht und das gemacht und das gemacht , bis ich schließlich neun war. Sie ging wieder auf Null, druckte sie den ganzen Weg durch. Und wenn ich dann immer gleich zehn bin, hörte es auf. Wenn wir wollten, dass das etwas schöner aussieht, hätten wir es z.B. zusammen ausdrucken können. Also hier unten, lass uns weitermachen und C aus I sagen. Und dann drucken wir j aus. Dann lass uns weitermachen und die CLI hier oben entfernen. Und jetzt, wenn wir unseren Code ausführen, wird es tatsächlich 00 sagen weil i und j beide Null waren, dann Null für i , eins für j, null Froude bis für j. Und das wird es bis neun tun . Ich werde nur einen für KI ausdrucken, weil KI für j um 10 steigen wird und so weiter. Und obwohl wir zwei verschiedene Zahlen ausdrucken, haben wir dort gerade Null bis 99 ausgedruckt . Und eine interessante Möglichkeit , 100 auszudrucken, ist das Innere unserer J4-Schleife. Wir hätten sagen können, wenn I gleich neun und j gleich neun ist, dann wollen wir 100 sehen. Wenn wir dann unseren Code erneut ausführen, können Sie sehen, dass wir Null bis 99 ausgedruckt haben , genau wie zuvor, außer dass ich gleich neun war und j gleich neun war, haben wir auch 100 ausgedruckt. Also los geht's. Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 39. Kapitel 7 (Schlaufen): Break: In diesem Video werden wir über das Break-Statement sprechen. Die break-Anweisung haben Sie tatsächlich schon einmal gesehen, als wir mit Schaltern gearbeitet haben, und wir geben so etwas wie diese Bruchlinie mit einem Semikolon ein. Nun darf die break-Anweisung, wie Sie hier sehen können, nur innerhalb einer Schleife oder eines Schalters verwendet werden. Und wir haben bereits gesehen, wie es innerhalb eines Switches funktioniert. Heute zeige ich dir , wie wir es mit Loops nutzen können. Der Brainsteim, den es macht, ist Sie automatisch aus der Schleife herauszuholen, und das tut es sofort und wird nicht mit dem Rest des Codes fortgesetzt. Lassen Sie uns also sehen, wie das funktioniert. Also genau hier werden wir weitermachen und eine Ganzzahl erstellen. Wir nennen das einfach i und setzen es auf 0. Darunter werden wir dann eine unendliche Zeitschleife erstellen . Nun, ich weiß, ich sagte, normalerweise willst du keine Endlosschleife erstellen , weil du nie daraus herauskommst. Aber mit einem Break-Statement können Sie das tatsächlich. Also werde ich dir zeigen, wie das jetzt funktioniert. Also sagen wir wow. Und dann werden wir innerhalb dessen wahr sagen und einen Codeblock erstellen. Im Moment würde diese Schleife also unendlich laufen, aber wir werden es tatsächlich schaffen , damit wir daraus ausbrechen können. Und hier drinnen sagen wir „I plus, plus “, einfach so. Darunter werden wir eine if-Anweisung erstellen. Ich sage def I ist gleich zehn. Dann wollen wir aus der Schleife ausbrechen. Und du sagst nur break und alles kleingeschrieben mit einem Semikolon am Ende. Und das wird uns aus der gesamten Schleife herausbrechen. Okay, dann hier unten sagen wir CL Loop. Einfach so. Beachten Sie auch, dass ich unseren Iterator in diesem Fall außerhalb unserer Schleife setze . Und der Endoperator ist im Grunde nur etwas, das Sie verwenden, um x Mal durch eine Schleife zu iterieren. Wenn wir es also stattdessen hier einfügen wollen, wäre es unendlich, denn jedes Mal, wenn wir eine Schleife durchlaufen, wäre ich erstellt und gleich 0 gesetzt worden. Ich wäre um eine Hand erhöht worden, es wäre niemals zehn gewesen. Und das wird immer und immer wieder passieren. Wenn wir es jedoch über unsere Schleife stellen, wird diese Variable außerhalb der Schleife gespeichert und gespeichert. Denken Sie daran, dass wir es beim nächsten Mal in der Schleife um eins erhöhen, es wird um eins steigen. Wieder ein bisschen wie damals, als wir diese Inner for Loop hatten und sie herausgenommen haben. Was wird also passieren? Wir erstellen eine Ganzzahl namens i und setzen sie auf 0. Das wird unser Iterator für unser bevorstehendes Live sein. Dann haben wir eine Endlosschleife erstellt , als wir sagten: Ja, stimmt. Aber jedes Mal, wenn wir eine Schleife durchlaufen, werden wir um eins zunehmen. Es beginnt also bei 0 und geht zu 1234 usw. Sobald ich gleich zehn bin, haben wir diese Break-Anweisung hier, um uns aus der Schleife zu werfen. Und dann unten drunter, eigentlich ausdrucken wollen, gefällt mir das einfach. Und wir werden jedes Mal eine neue Leitung einrichten. Und ich zeige dir in einer Sekunde warum. Lass uns jetzt weitermachen und unseren Code ausführen. Wie Sie sehen können, sind wir 123456789 gegangen, aber wir haben keine zehn ausgedruckt. Einmal. Ich war gleich zehn von uns, die es um eins erhöht haben, genau hier, es hat unsere if-Aussage überprüft. Ich sagte ja, und dann hat es uns herausgebrochen und es wurde nicht mit dem Rest des Codes und unserer Schleife fortgesetzt . Wir sind sofort ausgebrochen, sobald es auf diese Break-Anweisung trifft und es geht weiter mit dem Code. Deshalb haben wir keine zehn ausgedruckt. Da hast du es also. Sie wissen jetzt, wie man die break-Anweisung benutzt. Im Grunde machen Sie einfach Pause, werfen ein Semikolon und es wird Sie aus einer Schleife werfen oder Sie aus einem Codeblock werfen, wenn Sie mit Schaltern verwenden, wie wir es in der Vergangenheit gesehen haben. Und das ist im Grunde die einzige Möglichkeit, sich selbst aus einer Endlosschleife herauszuholen, wie Sie hier sehen. Aber du kannst das auch auf andere Weise nutzen und nicht nur in Endlosschleifen, oder? Wir hätten einfach sagen können, wenn ich weniger als 100 bin, und dann wäre das 100 Mal gelaufen und hätte aufgehört. Aber sobald wir zehn erreicht haben oder lassen Sie uns das einfach auf etwa 30 setzen, es einfach weitergehen und uns trotzdem rauswerfen. Wie Sie sehen können, hat sie uns rausgeschmissen, als wir die 30 haben, und es hat uns nicht die Mühe gemacht, sie zu drucken. So verwenden Sie die break-Anweisung, um Sie frühzeitig aus einer Schleife zu werfen. Es gibt mehrere Gründe, warum Sie dies tun möchten. Offensichtlich scheint es hier ein bisschen überflüssig zu sein, aber vielleicht möchten Sie eine bestimmte Anzahl von Malen eine Schleife ausführen , bis eine bestimmte Bedingung erfüllt ist, und dann einfach weitermachen und sofort daraus ausbrechen und dort. Und um Ihnen ein Beispiel dafür zu zeigen, hätten wir das String-Passwort sagen und es gleich setzen können, wir setzen es vorerst auf nichts. Und dann hätten wir hier drinnen sagen können: Nun, das Passwort ist nicht gleich. Und dann sagen wir einfach Passwort 123, weil wir das sicherste Passwort der Welt haben , das richtige. Und dann sagen wir hier unten einfach so cin-Passwort. Und wenn das Passwort gleich ist, sagen wir einfach stop. Lass uns weitermachen und das ändern, um zu beenden. Wir machen weiter und brechen einfach aus der Schleife aus. Obwohl das Passwort nicht dem Passwort 123 entspricht, werden wir weiterhin nach einem Passwort fragen. Und Sie können das tatsächlich hier tun, sagen wir, bitte geben Sie das richtige Passwort ein. Einfach so. Dann fragen wir nach einem Passwort. Wenn sie es hier unten in das richtige Passwort eingeben , sage ich. Und lass uns weitermachen und das reduzieren. Und innerhalb unserer Schleife sagen wir, dass das Passwort gleich ist. Und dann sagen wir Passwort. 123, wir sagen Glückwunsch. Andernfalls, wenn das Passwort gleich exit ist, brechen wir aus. Und ich werde weitermachen und den Ausgang ausdrucken. Ich werde so etwas wie beenden oder beenden sagen. Offensichtlich ist das nicht perfekt. Danach haben wir eigentlich nichts mehr, aber das ist nur ein Beispiel dafür, wie Sie eine while Schleife verwenden könnten und warum Sie vielleicht eine break-Anweisung für andere Optionen haben möchten . Also mach weiter und führe es aus. Jetzt wird es nach einem Passwort gefragt. Ich kann eingeben, was ich will. Das wird in der Zeichenfolge gespeichert. Wenn es nicht das richtige Passwort ist. Es wird mir einfach weiter sagen, dass wenn wir und aussteigen, es verlassen heißt, und los geht's. Wenn ich es jetzt erneut ausführe und Passwort 123 nehme, werde ich gratulieren. Was wäre, wenn wir dem Benutzer nur so viele Versuche geben wollten ? Nun, nachdem wir das gemacht haben und nachdem wir überprüft haben, ob das Passwort 123 entspricht, könnten wir hier sogar eine weitere Pause einlegen. Wenn wir es hier unten haben wollen, sagen wir, dass das Passwort korrekt war. Danach sagen wir „i und dann „Versuche“. Das Passwort war falsch. Versuche. Und dann entsteht außerhalb unserer Lippe eine Leere. Setze es gleich. Also machen wir weiter und setzen es gleich, okay, weil ich nicht möchte, dass sie einige Versuche haben . Und dann hier unten, direkt unter ihr, direkt über unserer CL-Linie werde ich minus minus sagen und dann ein Semikolon eingeben. Es wird also sehen, dass das Passwort falsch ist. Dann drucke ich es mir mal aus, oder? Fangen wir also mit fünf an. Versteh es nicht richtig. Ich sage, das Passwort ist falsch für Versuche links, Mitte, rechts? Also mach weiter und führe unseren Code aus. Wir haben etwas genommen, sagen das Passwort ist falsch für verbleibende Versuche, bitte geben Sie das richtige Passwort ein, 3210. Und leider wird es einfach weiter negativ werden , wenn wir nichts dagegen unternehmen. Also genau hier können wir sagen, wenn ich gleich 0 bin, drucke dich früher in Breakout aus , einfach so. Und danach machen wir eine neue Zeile, damit unser Code ein wenig besser bereinigt wird, wenn wir versagen. Es ist genau hier. Bitte geben Sie das richtige Passwort falsch ein. Server sind falsch. Du bist noch viermal übrig, drei Themen übrig bis zehnmal übrig. Jugend, Ben, ausgesperrt und los geht's. Wir haben jetzt eine sehr grundlegende Idee für ein Passwortprogramm erstellt . Hoffentlich haben Sie eine gute Vorstellung davon was sie kaputt macht, wie man es benutzt. Und vielleicht haben Sie jetzt ein paar Ideen, wann Sie es verwenden sollten. Hoffentlich hat dir das Video wie immer gefallen, danke fürs Ansehen, und wir sehen uns im nächsten. 40. Kapitel 7 (Schlaufen): Weitergehende Erklärungen: In diesem Video werfen wir einen Blick auf die Fortsetzung der Erklärung. Wie die break-Anweisung, über die wir im letzten Video gesprochen haben, wird die continue -Anweisung auch verwendet, wenn mit Loops gearbeitet wird. Schauen wir uns also an, wie das funktioniert. Zunächst werden wir weitermachen und eine For-Schleife erstellen. Also sagen wir für int I, setze es gleich 0. Wenn es dann weniger als zehn , plus plus, einfach so. Dann werden wir in unserer For-Loop hier weitermachen und sie ausdrucken also sagen wir, dass ich danach eine neue Linie erstelle, so. Dann oben über unserer c out-Anweisung hier, Lass uns weitermachen und eine if-Anweisung erstellen. Wir werden also sagen, dass es gleich ist. Und lass uns einfach weitermachen und etwas wie fünf hier platzieren. Dann wollen wir Folgendes tun. Wir werden es in die Continue-Erklärung aufnehmen. Also sagen wir weiter, alles in Kleinbuchstaben. Und das bewirkt, dass die aktuelle Iteration einer Schleife tatsächlich übersprungen wird. Und ich zeige Ihnen auch, wie das funktioniert und eine Zeitschleife. Was wird also hier passieren? Nun, wenn wir diese if-Anweisung nicht hätten, wissen wir, dass wir normalerweise 0 bis neun ausdrucken würden, aber weil wir das hier haben, wird es lesen, sobald ich gleich fünf bin, weiter Aussage. Danach überspringen wir einfach alles andere. Aber im Gegensatz zu einer Break-Anweisung, die uns komplett aus dem Laufenden bringen würde, was stattdessen passieren wird, da es hier hochgehen und unser Variablen-Update lesen wird. In diesem Fall werde ich also um eins aktualisiert. Und dann wird es den Zustand erneut überprüfen und dann weitermachen. Was also passieren wird, ist, dass wir 0 bis vier ausdrucken und dann zum Sex gehen und weiter. Und wenn wir unseren Code hier ausführen, können Sie sehen, dass genau das passiert ist. Also hat es 01234 ausgedruckt. Sobald ich gleich fünf war, mache ich weiter. Dann ging ich weiter, sprang hier zu unserem Variablen-Update las das nacheinander ab. Also war ich jetzt sechs und dann ging es wie gewohnt weiter. Also los geht's. So funktioniert die Continue-Anweisung in einer For-Loop. Ganz schnell übrigens mit der Continue-Anweisung und der break-Anweisung, wenn Sie eine verschachtelte Schleife haben. Nehmen wir an, wir hatten eine weitere Schleife außerhalb dieser. Also, wenn wir so etwas hätten , müsst ihr das jetzt nicht gleich hier kopieren. Ich versuche euch nur zu zeigen, worauf ich mich beziehe. Wenn Sie hier jedoch eine verschachtelte Schleife haben, Ihre kontinuierliche Anweisung und/oder Ihre break-Anweisung wirkt sich Ihre kontinuierliche Anweisung und/oder Ihre break-Anweisung nur auf die Schleife aus, um die es sich handelt. Und das hier würde sich nur auf diese Schleife auswirken und nicht auf die äußere Schleife. Und wenn dies ein Break-Statement wäre, würde es uns nur aus der inneren Schleife herausbrechen und nicht aus der äußeren. Also wenn ich weitermache und ausdrucke, gefällt mir das und drucke j. Ich bekomme meine neue Zeile hier und führe meinen Code aus. Wenn Sie sich jetzt unseren Code hier ansehen, können Sie sehen, dass wir 0 für r I ausgegeben haben, und dann für die J-Variable wir 01234 gegangen und haben zur nächsten Iteration unserer Schleife übersprungen , die auch erhöhte j in diesem Fall um eins und fuhr dann fort. Und das tat es jedes Mal aufgrund unserer kontinuierlichen Aussage. Und wie treffen wir hier ein Break-Statement, wie wir es im letzten Video verwendet haben, und führen unseren Code aus. Sie können sehen, dass es nur aus der aktuellen Schleife ausbricht. Und so gehen wir mit unserer j-Variablen nur von 0 auf vier, und das macht sie jedes Mal weiter . Also los geht's. Wie setzt es also die Aussage der Arbeit fort , die ganze Schleife? Nun, es funktioniert genauso , außer dass wir kein Variablen-Update haben. Wenn es also so etwas wie int ist, ist ich hier oben gleich 0. Und dann in unserer ganzen Schleife sagten wir, während ich weniger als zehn bin und innerhalb unseres Codeblocks hier, wir werden einfach weitermachen und ausdrucken, dass ich eine neue Zeile erstelle. Und dann wollen wir auch sicherstellen, dass wir einen Weg haben , aus dieser While-Loop auszubrechen, oder? Ich will nicht, dass das ewig so weitergeht. Also sag ich plus, plus so. Ohne dass etwas dagegen unternommen wird, wissen wir, dass hier ein bis zehn Fahrenheit-Code ausgedruckt wird . Wir können sehen, dass dies der Fall ist. Aber was ist, wenn wir unsere kontinuierliche Aussage einbringen? Wenn wir also noch einmal sagen, ob ich gleich fünf bin, achten Sie darauf , dass dies gleich ist. Und dann sagen wir hier einfach weiter. So. Sobald es unsere kontinuierliche Aussage hier erreicht hat, wird das nur den Zustand erneut überprüfen und nichts extra tun. Und das ist ein weiterer Grund, warum wir oder I plus plus oder unser Iterator vor der Nachhaltigkeit hier sein wollen . Denn wenn es danach wäre, zuerst einmal, würde es durchlaufen, das um eins erhöhen. Also sagen wir eins, drucken Sie es aus und machen Sie so weiter, bis ich fünf bin. Jetzt, sobald ich fünf war, es weiter und überprüfte unseren Zustand erneut. Und fünf sind weniger als zehn. Also das noch einmal durchzugehen und weiterzumachen und für immer weiterzulaufen und zu laufen und zu laufen. Wir wollen also sicherstellen , dass das, was dazu führt unsere While-Schleife endet, hier zumindest in diesen Fällen vorher passiert , um nicht einen Endlosschleifenschmerz zu erzeugen, der unser Programm abstürzt. Wenn ich den Code hier ausführe, können Sie sehen, dass wir 1234 ausgedruckt haben. Sobald wir F5 erreicht haben, fahren wir fort und rendern Zustand sechs erneut. Es ist also nicht mehr gleich fünf, und dann wurde es weiter gedruckt. Also los geht's. Sie wissen jetzt, wie Sie die Continue-Anweisung erstellen und verwenden. Und denken Sie daran, alles was es tut, ist die aktuelle Iteration der Schleife zu überspringen . Und mit einer Zeitschleife wird es nur noch einmal den Zustand überprüfen. Und mit einer for-Schleife, wenn Sie ein Variablen-Update drin haben, wird das zuerst erledigt und dann trotzdem Ihren Zustand überprüft, das war's für dieses Video. Wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 41. Kapitel 7 (Schlaufen): Validierung der Benutzereingaben: In diesem Video zeige ich Ihnen, wie wir Benutzereingaben tatsächlich validieren können. Bisher haben wir in diesem Kurs nur sichergestellt, dass wir die richtigen Werte eingegeben haben . Wenn zum Beispiel einer der Benutzer oder wir selbst in diesen Fällen eine Ganzzahl eingeben , haben wir nur eine ganze Zahl eingegeben. Aber wenn wir tatsächlich etwas wie Hallo eingeben würden , würden wir auf einige Probleme stoßen. Je nachdem, welche Art von Programm sie erstellen wird, kann dies ein Problem für Sie sein oder auch nicht, da Sie möglicherweise nie zufällige Benutzereingaben vornehmen müssen , die Sie benötigen, um sicherzustellen, dass sie korrekt sind. Aber ich möchte Ihnen zeigen, wie das gemacht wird , falls Sie es brauchen oder falls Sie es in Programme implementieren möchten , die Sie vielleicht gut erstellen und versuchen, Sprache zu lernen und zu verstehen. Und nur damit Sie dies zur Verfügung haben und es erkennen können , wenn Sie es im Code einer anderen Person sehen. Nun, nur ein kurzer Haftungsausschluss, ich werde ihn wahrscheinlich während des restlichen Kurses überhaupt nicht verwenden . Dieses Video wird nur als Referenz hier sein und damit Sie lernen, wie das geht, sollten Sie wählen. Der Hauptgrund dafür. Wir werden es nur wegen der zusätzlichen Komplexität sein, aber ich habe das Gefühl, dass es den Code erweitert. Und persönlich verwende ich es einfach nicht oft in dem Code, den ich mit C plus plus mache. Und lassen Sie uns einfach, weil ich normalerweise mit der Spieleentwicklung arbeite und die Benutzer nicht nur zufällige Dinge eingeben müssen , um eine Variable auszufüllen. Aber weil wir mit einer Konsolenanwendung arbeiten und den Benutzer bitten, alles einzugeben was er möchte, um eine Variable auszufüllen. Ich halte es für wichtig , Ihnen beizubringen, wie das funktioniert. Tut mir leid für diesen kleinen Scherz, aber lass uns weitermachen und loslegen. Also zuerst sagen wir, das gefällt mir einfach. Und dann werden wir weitermachen und eine unendliche Zeitschleife erstellen , um Benutzereingaben zu erhalten. Also sagen wir wow. Und dann sagen wir hier drinnen einfach wahr. Denken Sie daran, eine andere Möglichkeit , eine Endlosschleife zu erstellen, besteht darin, eine solche For-Schleife zu erstellen und das dann einfach zu tun. Und genau das machen wir für immer , weil da drin kein Zustand ist. Und es wird nur davon ausgegangen, dass die Bedingung im Wesentlichen wahr ist. Aber ich benutze den Wiley gerne persönlich, weil ich denke, dass er etwas lesbarer als eine leere Vierschleife. Also werden wir weitermachen und den Benutzer bitten , eine Nummer einzugeben. Also sagen wir C raus, bitte gib eine ganze Zahl ein. Wir machen so einen Doppelpunkt. Und darunter werden wir weitermachen und eine if-Anweisung erstellen. Also sehen wir uns das so an. Jetzt geben wir eine Menge Code ein , der für Sie keinen Sinn ergibt. Aber im Moment machen Sie einfach weiter und ich werde am Ende alles mit Ihnen durchgehen und versuchen, es so einfach wie möglich zu verstehen. In Ordnung, tut mir leid, hier drin sagen wir so Pause. Also werde ich einfach ein Break-Statement abgeben. Und darunter werden wir noch etwas anderes sagen. Und dann werden wir im Codeblock für unsere else-Anweisung hier weitermachen und Folgendes speichern. Wir sagen C raus. Diese Eingabe erfolgte im gültigen Feld, bitte geben Sie ein Nummernfeld ein. Und dann Dumbo, von dem wir sagen werden, cn dot Clear und dann Klammern öffnen und schließen, dann ein Semikolon. Darunter sagen wir dann c m dot ignore. Und dann sagen wir in Klammern numerisch. Alles in Kleinbuchstaben, Übrigens begrenzt der Unterstrich die Größe des Kleiner-als-Symbols und der Stream-Größe. Alles ein Wort, alles in Kleinbuchstaben. Und dann das Größer-als-Symbol, gefolgt von zwei Doppelpunkten. Dort sage ich max, alles in Kleinbuchstaben, öffne und schließe Klammern Komma. Und dann setzen wir einfaches Anführungszeichen wie dieses ein, umgekehrten Schrägstrich n, gefolgt von einem weiteren einfachen Anführungszeichen oder engen Klammern und dann einem Semikolon am Ende. Und das ist alles, was wir validieren müssen. Unser Input ist meiner persönlichen Meinung nach ein bisschen viel , aber so geht es in C plus plus. Also lasst uns darauf eingehen. Also genau hier oben haben wir gesagt, bitte gib eine ganze Zahl ein. Dann hier unten sagten wir, wenn CNI, also was das eigentlich tun wird, ist Input wie gewohnt zu nehmen und dann den Input auf High zu setzen. Und wenn die Operation funktioniert, wird dies wieder wahr sein. Dann wird es hier in den Art-Code-Block springen, was uns aus der Schleife brechen wird weil wir endlich den Input haben, nach dem wir suchen. Wenn dieser Vorgang jedoch fehlschlägt, haben wir hier unsere Else-Erklärung, die uns abdeckt. Also sagen wir dem Benutzer: Hey, diese Eingabe war ungültig, bitte gib eine ganze Zahl ein. Dann haben wir gesagt, dass wir nicht klären können , was das ist im Grunde die Luft zu klären , die durch den Versuch entstanden wäre um im Grunde die Luft zu klären , die durch den Versuch entstanden wäre, alles, was der Benutzer eingegeben hat, in mich einzugeben. Das war keine ganze Zahl. . Ordnung, das ist also im Grunde der einfachste Weg, über diese Methode nachzudenken , da wir nur die Luft klären , die von dem Benutzer gekommen wäre, der versucht hätte den falschen Datentyp in mich einzufügen. Ein kleiner Kommentar. hier, klar für den Versuch, den falschen Datentyp in unsere Ganzzahl einzugeben. Und ich sage eigentlich nur variabel. Sehen Sie also, dass dies im Grunde mit jedem anderen Datentyp funktionieren würde . Dann sagten wir hier unten cin.ignore. Und danach geben Sie im Wesentlichen die Anzahl der Zeichen ein, die Sie ignorieren möchten. Und so besagt diese ganze Sache hier, bis zu diesem Maximum hier, im Grunde wir die maximale Anzahl von Zeichen ignorieren wollen dass wir die maximale Anzahl von Zeichen ignorieren wollen, die bis zu diesem Backslash n-Zeichen eingegeben wurden . Nun der Grund, warum wir alles ignorieren. Bis zum neuen Zeilenzeichen , in diesem Fall, als der Benutzer Enter as eintippte, weil wir wissen, dass am Ende dessen, was der Benutzer eingegeben hat, sagen wir, dass er eingegeben hat ein ganzes Wortbuch. Wenn wir sie bitten , eine ganze Zahl einzugeben, die unser Programm hier ist, ignoriert es alles, was sie gerade eingegeben haben. Denn am Ende von allem, was sie eingegeben haben, drückten sie die Eingabetaste, was einem neuen Zeilenzeichen entspricht. Ignoriere alles bis zu einem neuen Zeilenzeichen. Eintreten. Warum haben wir das getan? Nun, zunächst haben wir den Fehler behoben, der vom Benutzer bei der Eingabe und dem falschen Datentyp in eine Variable aufgetreten ist. Wenn wir dann ohne diese Codezeile unsere Schleife noch einmal durchlaufen hätten, hätten wir im Grunde genau den gleichen Fehler bekommen und das würde nie funktionieren und wir würden einfach darin stecken bleiben Schleife. Im Grunde haben wir unserem Programm gesagt: Hey, ignoriere einfach alles , was nur Typ war, wir werden komplett neu anfangen. Indem wir also die Luft ignorieren und unserem Programm sagen , alles zu ignorieren, was eng war, beginnen wir im Grunde mit einer frischen, sauberen Weste. Ordnung, also hoffentlich macht das Sinn. Eine weitere Sache, die ich schnell erwähnen möchte da jedes Mal, wenn Sie mit so etwas arbeiten , möglicherweise eine Endlosschleife als jede Art von Pause in Ihrem Programm verursachen kann eine Endlosschleife als jede Art von , wenn Sie ein Endlosschleife. Nun, seien Sie oft ein netter Ausfallschutz für den Absturz Ihres Programms. Aber ich würde immer sagen, nur um sicherzugehen, dass wir schon viel davon gesehen haben. Der einzige Unterschied besteht darin, dass Sie jetzt wissen, dass Sie so etwas eingeben können. Wir können also CAN sagen, gefolgt von einer Variablen, wie wir es in der Vergangenheit getan haben. Und das wird tatsächlich wahr oder falsch zurückgeben , je nachdem, ob das funktioniert hat oder nicht. Okay, und dann hier unten haben wir unser Break-Statement , das wir in der Vergangenheit gesehen haben und das uns komplett aus dieser Schleife herausholen wird . So können wir also aus unserer Endlosschleife herauskommen. Und ganz unten haben wir das hier, das im Grunde nur sagt, hey, deine Eingabe war ungültig, wenn das falsch zurückgegeben wurde. Und dann haben wir diese beiden Codezeilen , um uns eine saubere Weste zu geben. Also lasst uns weitermachen und unser Programm ausführen. Und es wurde nach einer ganzen Zahl gefragt. Und ich nehme einfach so etwas wie Hallo. Und beachten Sie, dass unser Programm nicht abgestürzt keine verrückten Fehler aufgetreten ist. Und eigentlich nur um Ihnen hier in unserer if-Erklärung noch eine Sache zu zeigen hier in unserer if-Erklärung Lassen Sie uns weitermachen und das einfach ausdrucken. Ich werde so eine neue Linie erstellen. Dann machen wir dasselbe in unserem else-Codeblock hier. Sehen Sie sich die Zeile an, damit Sie wissen , dass wir sie für April verwenden können und wir keine Fehler haben. Okay? Also kann ich tippen, was sie wollen und eingeben und es wird keine Probleme verursachen. Ich habe ausgedruckt, ich kenne das Problem. Und nur um sicher zu gehen, obwohl dieser tote Ausdruck 0 ist, würde ich empfehlen , dass wir es hier oben initialisieren. Persönlich würde ich empfehlen, dass Sie den Anfangswert im Auge behalten , bevor Sie so etwas tun. Aber wie Sie gesehen haben, hat es funktioniert, in diesem Fall hat es 0 ausgedruckt. Aber generell um sicher zu gehen , würde ich das empfehlen. Okay. Sie können also eingeben, was Sie wollen. Und danach können Sie sehen, dass wir ausgedruckt haben Ich serviere sie verwenden KI, kein Problem. Und hier unten haben wir gesagt, dass sie gültig sind, bitte sagen Sie die ganze Zahl. Und wenn wir das bereinigen wollten , hätten wir Folgendes tun können. Wir können einfach unser C rausnehmen. Bitte nehmen Sie die Nummer und platzieren Sie sie hier außerhalb unserer Warteschleife. Und das wird gut funktionieren. Also da hinten, was auch immer wir wollen. Wir können das so oft machen, wie wir wollen weil wir eine Endlosschleife haben. Hier ist ein gutes Beispiel dafür, wann eine Endlosschleife nützlich ist, wenn wir versuchen, eine solche Eingabe zu erhalten. Und wir wissen wirklich nicht , wann wir wollen, dass das aufhört. Nun, zugegeben, das ist unendlich, dies ist ein gutes Beispiel dafür, wann Sie eine While-Schleife über einer for-Schleife verwenden möchten While-Schleife über einer for-Schleife verwenden wenn die Bedingung , dass Sie erfüllt werden möchten , komplizierter ist und Sie Ich weiß nicht genau , wie oft Sie die Schleife durchlaufen möchten, oder? Denn normalerweise werden Sie mit einer For-Loop sagen, wenn unser Iterator oder eine Menge Temperatur, an die Sie in der Vergangenheit als Abkürzung für Iterator gewöhnt sind , kleiner oder größer als eine bestimmte Zahl oder so ähnlich. Wie auch immer, wenn wir weitermachen und eine ganze Zahl eingeben, wie wir gefragt haben, wird sie das ausdrucken und uns aus dem Kreis werfen und schon kann es losgehen. Aber es gibt einen anderen Weg, dies zu tun. Wenn du also etwas wie CAN sagst, genau hier unten in der if-Anweisung, kann tatsächlich c n dot fail sagen. Für unseren hier gezeichneten Codeblock wollen wir jedoch sehen, ob er nicht versagt hat. Wir könnten einfach sagen, wenn nicht so scheitern. Und wenn wir unseren Code überprüfen würden. Sie können sehen, dass dies genauso funktioniert wie zuvor. Und wenn ich eine ganze Zahl tippe, schmeiß uns BAM raus. Einfach so. Alles bereit zum Mitnehmen. Also los geht's. Sie können auch die CN-Punkt-Fail-Methode verwenden , um festzustellen, ob dieser Vorgang fehlgeschlagen ist oder nicht. Also, wenn wir das nicht wollen, lass es einfach hier ausschneiden, unten einfügen, uns alle hier ausschneiden und es in eine if-Anweisung einfügen und es entfernen. Und das würde einwandfrei funktionieren, solange wir hier eine Fortsetzungserklärung abgeben , oder? Jedes Mal, wenn es fehlschlug, überspringen wir einfach die Checker-Bedingung, was wahr ist, und durchliefen. Und wenn es nicht scheitern würde, würden wir da ausbrechen. Also für meinen Code hier nochmal, mal sehen, ob wir was auch immer nehmen. Ich mache einfach weiter. Wiederhole. Aber wir sind immer noch auf dem Laufenden, oder? Weil wir gerade sehen, dass diese dunkle Aussage enthält , über die wir in einem früheren Video gesprochen haben , um ihren Zustand zu überprüfen und den Rest des Codes zu überspringen. Aber wenn wir tatsächlich eine Zahl eingeben, dann ist es los. Wirf das raus, wie wir es erwarten würden. Nun, ganz schnell für diejenigen unter Ihnen, die sich fragen, da wir das Wort Stream jetzt schon einige Male gesehen haben, haben wir Code aus der iostream-Header-Datei erhalten. Wir sprechen hier von einer Stream-Größe. Wenn ich mit der Maus über C n und C gehe, kommen sie alle aus dieser Stream-Datei. Was ist ein String? Und keine Sorge, Sie müssen das für diesen Kurs nicht wirklich vollständig verstehen. Ich wollte dir nur sagen , was das ist. Im Grunde ist ein Stream in C plus plus nur ein Strom von Zeichen, die zwischen dem Programm und dem Eingangsausgang übertragen werden . Und so sind unser C out und C n das, was wir verwendet haben, um mit dem Input und Output zu interagieren. Und wenn wir das hier haben, ist das im Wesentlichen unser Stream. Dies sind unsere Charaktere, die zwischen den Programmen übertragen werden . Und wie wir wissen, werden sie erst an das Programm übertragen, wenn wir die Eingabetaste und den gesamten Text hier drücken, sowohl die Ausgabe des R-Codes als auch die Eingabe von uns. Der Charakter wird also zwischen unserem Programm hin und her übertragen und der Benutzer ist Teil dieses Eingabe- und Ausgabestreams. Als wir also sagten Hey, wir möchten, dass unser Programm die Bank-Stream-Größe von Zeichen ignoriert , oder im Grunde alles Mögliche sagt, was sie hier in unsere Konsole hätten eingeben können, ignorieren Sie es. Und so haben wir mit einer sauberen Weste angefangen. Wir müssen uns keine Sorgen machen, dass der Fehler wieder auftaucht und so weiter. Das ist so ziemlich alles. diese Weise überprüfen Sie, ob die Benutzereingabe im Wesentlichen mit diesen beiden Zeilen genau hier erfolgt. Und sicherstellen, dass der Input durchgegangen ist. Wie auch immer, lass es fallen, das Video. Ich werde nur kurz alles zusammenfassen , worüber wir gerade gesprochen haben. Es gab Neues in diesem Video. Zunächst wissen wir, dass wir unsere CN-Anweisung hier direkt in einer Bedingung verwenden können unsere CN-Anweisung hier direkt in und sie wird true zurückgeben, wenn das Einfügen dessen, was der Benutzer in die Variable eingegeben hat erfolgreich und falsch war. haben wir auch etwas über die Sitz- und Punktfüllmethode gelernt, die true zurückgibt, wenn diese Operation fehlgeschlagen ist, und false, wenn nicht, dann haben wir hier über diese beiden Methoden gelernt. Und denken Sie daran , dass das cn dot clear hier im Grunde nur den Fehler löscht , der vom Benutzer auftritt, der versucht, falsche Daten in die Variable einzugeben. Dann haben wir die Methode cin.ignore, die im Grunde die Anzahl der Zeichen ignoriert, um die wir bitten, bis zu dem Punkt, an dem wir sie auffordern, zu stoppen, was in diesem Fall einfach alles ist , was der Benutzer eingetippt. Und das nur, um zu verhindern, dass die Luft sofort zurückkommt. Ordnung, hoffentlich ist das nicht zu kompliziert. Wie gesagt, ich werde das während des gesamten Kurses nicht oft verwenden , da ich glaube, dass es eine Menge Code ist , der die Videos zu einem bestimmten Thema ein wenig verschlingt . Aber in Fällen, in denen ich ein vollständiges Programm habe, werde ich weitermachen und es einwerfen nur um Ihnen zu zeigen, dass wir dies tun sollten, wenn wir nach Benutzereingaben fragen und um Sie daran zu erinnern, wie um dies und wann zu tun. Wie auch immer, ich hoffe dir hat das Video gefallen. Danke fürs Zuschauen und wir sehen uns im nächsten. 42. Kapitel 7 (Schlaufen): Scope: In diesem Video werde ich mit Ihnen über den Bereichsauflösungsoperator sprechen und darüber , was dieser Operator für den Zugriff auf eine globale Variable ist , die denselben Namen hat, eine lokale Variable. Im Allgemeinen würde ich also nicht empfehlen, dass Sie zwei Variablen mit demselben Namen haben. Aber in dem seltenen Fall, in dem Sie dies aus irgendeinem Grund haben , werde ich Ihnen zeigen, wie Sie getrennt auf die globale und die lokale Variable zugreifen können . Aber im Allgemeinen würde ich es nicht empfehlen, und ich würde empfehlen, spezifischere Variablennamen zu haben. So wissen Sie immer genau , womit Sie gearbeitet haben. Denn obwohl wir zum Beispiel Dinge wie int x gesehen haben, wenn ich das verwenden würde, die Tabelle, die Punktzahl in einem Fußballspiel, würde ich diesen Punktestand nennen wollen und nicht etwas Generisches wie dieses, wo ich nicht wissen werde, was diese Variable hält. Ordnung, also schauen wir uns an , wie Operator für die Auflösung des Bereichs verwendet wird. und versuchen, unseren Code auszuführen, erhalten wir normalerweise Wenn wir also zwei Variablen mit demselben Namen wie diese haben und versuchen, unseren Code auszuführen, einen Fehler. Und das liegt daran, dass Sie zwei Variablen mit demselben Namen haben . Und wenn Sie hier unten schauen, habe ich tatsächlich einen Fehler besagt , dass int x neu definiert wird. Ich habe zweimal versucht, dieselbe Variable zu finden. Sie können jedoch zwei Variablen mit demselben Namen haben. Wenn zum Beispiel einer global und einer lokal ist. Und wie Sie sehen können, wenn ich versuche, meinen Code jetzt auszuführen, läuft er einwandfrei und wir sind nicht dort angekommen. Was ist, wenn ich über diese Variable auf diese Variable zugreifen möchte oder umgekehrt? Lassen Sie uns also weitermachen und diese durch einen Wert trennen , damit wir sehen können, auf welchen wir zugreifen. Dieser Wert ist zehn, und ich gebe ihr eine lokale Variable, einen Wert von fünf. Dann sagen wir x, einfach so und führen unseren Code aus. Und wie Sie sehen können , werden fünf ausgedruckt. Und das liegt daran, dass Sie standardmäßig auf die lokale Variable zugreifen. Mit dem Bereichsauflösungsoperator können Sie jedoch auf die globale Variable zugreifen. Wenn sie es also wieder sehen, wie wir es vorher und dann vor unserer Variablen getan haben, wenn wir einfach so in Colins eingeben und unseren Code ausführen, können Sie sehen, dass wir fünf ausdrucken und wir auch drucken von zehn. Und das liegt daran, dass diese beiden Spalten hier der Bereichsauflösungsoperator sind, mit dem Sie auf die globale Variable im Vergleich zur lokalen Variablen zugreifen können . Und das ist so ziemlich alles, was dazu gehört. Wenn Sie also zwei Variablen mit demselben Namen verwenden, verwenden Sie zwei Doppelpunkte als Bereichsauflösungsoperator, um auf die globale Variable zuzugreifen. Und Sie machen nichts anderes , um auf die lokale zuzugreifen. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns beim nächsten. 43. Kapitel 8 (Zufallszahlen): Einführung in Zufallszahlen: In diesem Video gebe ich Ihnen eine Einführung in Zufallszahlen in der gesamten Programmierung. Und danach, im nächsten Video, werden wir tatsächlich Zufallszahlen innerhalb eines gewünschten Bereichs in C plus plus generieren . Also lasst uns anfangen. Wenn wir Zufallszahlen generieren möchten, müssen Sie zunächst diese beiden Dateien zu Ihrem Programm hinzufügen . Ganz oben werden wir sagen, dass Hashtag in einem Kleiner-als-Zeichen und Größer-als-Zeichen enthalten ist. Wir sagen C std LIB. Und das ist nur die C-Standardbibliothek wie bei anderen Abkürzungen für. Und dann werden wir beim nächsten Mal dasselbe tun, außer dass wir C-Zeit setzen. Und mit diesem hier arbeiten wir zusammen, Ordnung, also werde ich weitermachen und das hier unten verschieben. Nun, wenn es um die Zufallszahlen in der Programmierung geht, weil Computer einfach das tun, was ihnen gesagt wird, dass man eigentlich keine Zufallszahl bekommen kann. Es ist nicht möglich, unabhängig von allen Programmen und Anwendungen, die Sie gesehen haben, es generiert keine Zufallszahl. Für den Benutzer sieht es jedoch zufällig aus. Und lassen Sie mich erklären, wie das funktioniert. Zunächst einmal gibt es da draußen diese wirklich komplizierte Gleichung , in die Sie zunächst eine Zahl eingeben können. Und es gibt Ihnen eine scheinbar Zufallszahl, die auf dem basiert , was Sie ihr gegeben haben. Wenn Sie ihm jedoch immer wieder dieselbe Nummer geben, erhalten Sie dieselbe Nummer zurück. In der Programmierung möchten Sie dieser Gleichung also jedes Mal eine andere Zahl geben. Wenn ein Benutzer also glaubt, dass er auf die Art und Weise, wie wir es tun, immer eine Zufallszahl erhält, gibt er dieser Gleichung die aktuelle Uhrzeit. Und weil es das Datum und die Uhrzeit benötigt, wird diese Zahl immer anders sein. Eine andere Sache, die ich euch in diesem Video zeigen möchte , ist etwas namens Overflow. Zunächst einmal hat eine ganzzahlige Variable dies als maximale Zahl. Und auf andere Weise könnten wir das erreichen ohne uns nur daran zu erinnern und int Underscore Max zu sagen und nur eine Vorwarnung hoch Es gibt andere Schlüsselwörter wie dieses, über die wir in diesem Kurs nicht sprechen werden. Wenn Sie also interessiert sind , können Sie sich das jederzeit ansehen. Wie auch immer, was ich hier machen werde, sagen wir einfach, x ist am Ende gleich Semikolon. Und dann sagen wir x plus plus. Also fügen wir eins hinzu und drucken es dann aus. Und um dir zu zeigen, was passiert, lass uns weitermachen und telefonieren. Und das ist CL-Linie. Und dann Männer, einfach so, und das wird uns den minimalen ganzzahligen Wert geben. Wie Sie sehen können, sind sie genau dasselbe. Und der Grund dafür ist, dass, sobald eine Ganzzahl als Maximalwert überschritten wird, etwas tut, das als Überlaufen bezeichnet wird, wo sie einfach wieder auf ihren Minimalwert zurückgeht Maximalwert überschritten wird, etwas tut, das als Überlaufen bezeichnet wird, wo sie einfach . Und dann zählen wir von dort aus hoch. Nun, was haben wir, um daraus eine vorzeichenlose Ganzzahl zu machen? Dann würden wir int max sagen, und das gibt uns den Maximalwert für eine vorzeichenlose Ganzzahl. Führen Sie dann ein Programm aus, bleiben Sie tatsächlich eine positive Zahl und kehren Sie einfach zurück zu 0, da dies der minimale Bereich für ein vorzeichenloses int ist. Wie auch immer, ich wollte dir nur zeigen , welcher Überlauf sehr schnell war und du wirst die bessere Vorstellung davon verstehen warum ich dir das im nächsten Video gezeigt habe. Plus ist einfach eine gute Sache für die Zukunft. Wie auch immer, die Hauptsache , die du aus diesem Video herausnimmst , ist, dass Zufallszahlen und Programme nicht wirklich zufällig sind und sie das sind, was wir Pseudozufällig nennen, also erscheinen sie einfach zufällig Benutzer. Und was passiert tatsächlich, wenn wir eine Zahl in eine große Gleichung eingeben , die uns eine scheinbar zufällige Zahl gibt. Und indem wir diese Zahl ändern, können wir jedes Mal eine scheinbar zufällige Zahl erhalten. Deshalb fügen wir die aktuelle Uhrzeit in diese Gleichung weil sie das Datum und die Uhrzeit verwendet uns eine andere Zahl zu geben. Wie dem auch sei, das war's für dieses Video. Stellt sicher, dass ihr diese Bibliotheken hinzufügt und wir lassen sie einfach für den Rest des Kurses hier da es nichts schaden wird . Danke fürs Zuschauen und wir sehen uns im nächsten. 44. Kapitel 8 (Zufallszahlen): Generierung von Zufallszahlen: In diesem Video zeige ich Ihnen, wie wir scheinbar zufällige Zahlen in C plus plus erhalten können . Ignorieren Sie einfach diese Textzeile , die ich hier habe, und ich zeige Ihnen, was das bedeutet und ein bisschen. Wie auch immer, lassen Sie uns weitermachen und ein Programm erstellen, zehnfache Rollen eines sechsseitigen Würfels simuliert. Also zuerst, was wir tun werden, ist für int zu sagen , dass ich gleich 0 bin, ich weniger als zehn. Ich plus, plus. Einfach so. Innerhalb unserer Schleife sagen wir CL, Rand, alles Kleinbuchstaben, offene und schließende Klammern und setzen ein Semikolon am Ende. Und was das tun würde, ist uns automatisch nur eine Zufallszahl zwischen 0 zu geben. Also Zahl zwischen Rand max. Jetzt hat Rand Max einen Mindestwert von 32.767. Also werden wir diese verrückte Zahlenreihe bekommen. Wie gesagt, das ist der Minimalwert, nicht das Maximum. Bevor wir also unseren Code ausführen, setzen wir uns alle in eine neue Zeile. Dann machen wir weiter und führen es aus. Wie Sie sehen können, haben wir zehn scheinbar zufällige Zahlen erhalten . Lassen Sie uns jedoch versuchen, ein paar davon auswendig zu lernen. Dieser erste ist also für 1184676334. Das sind unsere ersten drei. Und wenn wir noch einmal ein Programm laufen lassen, oh, würdest du dir das ansehen? Wir haben genau die gleichen Zahlen. Und wenn wir es noch einmal machen würden, würden wir wieder dieselben Zahlen bekommen. Und das wird für immer so bleiben , denn wie gesagt, es ist nicht wirklich zufällig. Und wir erhalten die Gleichung , über die ich im letzten Video gesprochen habe, dieselbe genaue Zahl, mit der wir jedes Mal beginnen. Sie erhalten also mehr scheinbar zufällige Zahlen. Wir müssen einen anderen Wert in die Gleichung eintragen , der uns eine scheinbar zufällige Zahl ergibt. Um das zu tun, steht das, was wir tun werden , ganz oben in unserem Programm. Und übrigens, sie werden das nur einmal machen wollen. Andernfalls erhalten Sie keine scheinbar zufälligen Zahlen wie Sie es möglicherweise könnten. Du wirst diesen Strang sagen, alles in Kleinbuchstaben. Und dann werden wir in Klammern die Zeit in Kleinbuchstaben sagen. Und wieder in Klammern setzen wir nein. Sie können auch sehen, dass Leute 0 setzen und es ist im Wesentlichen dasselbe. Und wenn ich mit der Maus darüber fahre, kannst du sehen, aber es ist auch 0. Und dann, ganz am Ende, setzen wir ein Semikolon wie also, was das tun wird, ist, wenn unser Programm läuft, wir werden die Uhrzeit und das Datum direkt in die Gleichung einfügen, die ist eine scheinbar zufällige Zahl. Und dann wird uns diese Zufallsmethode hier das Ergebnis davon geben. Obwohl uns dies zehn scheinbar zufällige Zahlen gab , war das Problem, wie Sie gesehen haben, als wir sie erneut aufgerufen haben und unser Programm vollständig gestartet haben. Diese ersten zehn Zahlen waren jedes Mal gleich. Und wir hätten 100 Zahlen und unser Programm erneuern können. Und es wären dieselben 100 Zahlen gewesen. Auch wenn diese 100 Zahlen unterschiedlich waren. Also jetzt, wenn ein Programm ausgeführt wird, weil es die Uhrzeit und das Datum verwendet, an dem das Programm zum ersten Mal gestartet wird. Die Gleichung, über die ich gesprochen habe, wird uns jedes Mal eine Liste scheinbar unterschiedlicher Zufallszahlen geben eine Liste scheinbar unterschiedlicher , da die Zeit jedes Mal anders sein sollte , wenn wir unser Programm ausführen. Ganz schnell, was dieses Ding als Samen macht, die Zufallsgleichung mit einer Zahl. Und Sie können hier einfach eine positive Zahl eingeben , wie fünf. Und das wird funktionieren. Und wie Sie sehen können, wenn ich unser Programm vorher auf Zahlen und die Toten ausführe . Aber wenn ich es noch einmal durchführe, gibt es dieselben Zahlen. Also gehe ich zurück. Wie dem auch sei, warum wollen wir das nur einmal in unserem Programm haben? Und warum haben wir es nicht einfach in unsere For-Schleife aufgenommen? Nun, das Problem ist, dass Ihr Computer so schnell liest , dass wir durch diese innere Schleife möglicherweise dieselbe Nummer mehrmals ausdrucken , weil wir dieselbe genaue Nummer gehabt hätten in unsere Gleichung eingespeist. Da diese Codezeile hier möglicherweise zweimal genau zur gleichen Zeit ausgeführt wurde, die Zahlen nicht so zufällig gewesen, wie es hätte sein können , wenn wir sie nur einmal ausgeführt hätten zu Beginn unseres Programms. Und weil Sie so eine Liste mit Zahlen erhalten, möchten Sie dies nur einmal tun. Und wie gesagt, setze das einfach an den Anfang deines Programms. Wenn Sie versuchen, eine Zufallszahl zu erhalten , können Sie loslegen. Wir können uns so oft darauf berufen, wie wir wollen. Wie gesagt, wenn wir das sogar erhöhen können wenn wir möchten, und unseren Code ausführen können, können Sie sehen, dass wir 100 Zahlen erhalten . Und wenn wir uns diese Top Drei ansehen und es ist irgendwie möglich, diese ganz schnell auswendig zu lernen. Eine, die ich wieder könnte, Sie können sehen, dass sie nicht mehr jedes Mal gleich sind, was genau das ist, was wir wollen. Wie gesagt, wir versuchen hier ein Programm zu erstellen, das einen sechsseitigen Würfel simuliert. Und nun, diese Zahlen sind verrückt. Wie beheben wir das? Denken Sie an den Moduloperator, über den wir gesprochen haben , als wir über grundlegende mathematische Operatoren gesprochen haben. Nun, das ist ein gutes Beispiel dafür wann sich das als nützlich erweisen wird. Was wir also tun werden, ist um unseren zufälligen Methodenaufruf hier herum. Und wie gesagt, wir werden später im Kurs auf Methodenaufrufe eingehen. Wir machen weiter und setzen Klammern. So. Und dann hier rein, setzen wir den Moduloperator gefolgt von der Zahl, die wir wollen, also Sex. Und jetzt wissen wir, dass wir nur einen Wert zwischen 05 erhalten können , weil dieser Operator, wenn Sie sich erinnern, uns den Rest dieser Zahl geteilt durch diese Zahl gibt . Aber wenn wir versuchen, den Würfelwurf zu simulieren, werden wir wahrscheinlich eine Zahl zwischen 16 und nicht 0 bis fünf wollen. Und nun, kein Problem. Denn danach, sag plus eins, einfach so. Jetzt kriegen wir eins bis sechs. Und wenn wir unser Programm ausführen, geht es los. 12345678910, scheinbar Zufallszahlen zwischen 16. Und wir können das so oft ausführen, wie wir wollen. Und wie Sie sehen können, scheinen sie jedes Mal zufällig zu sein. Also los geht's. Dies ist der einfachste Weg, um scheinbar zufällige Zahlen innerhalb eines von Ihnen gewünschten Bereichs zu erhalten. Eine weitere Sache, die ich ansprechen möchte , ist, dass je nachdem, was wir verwenden, diese Zufallszahl vier, die Möglichkeit besteht, dass wir je nachdem, was diese Zahl ist, einen Fehler machen. Und es kann schwierig für uns , diese Zahl erneut zu erhöhen, insbesondere je nachdem , aus welchem Bereich wir es schaffen. Sie können also einfach diese Zeit sparen , irgendwo keinen Wert, und das dann ausdrucken, sodass dem Zeitpunkt, zu dem Sie die Luft bekommen, diesen Wert haben, um in Ihr Programm zurückzukehren. Was wir also tun könnten, ist so etwas wie unsigniert diesen Samen zu sagen und dies der Zeit gleichzusetzen. Einfach so. Möglicherweise wird dies auch als Zeit 0 bezeichnet. Das macht genau das Gleiche. Es gibt keinen Unterschied zwischen dieser Zeile hier und dieser. Also, wenn du das gerade siehst, dasselbe. Und dann hier unten können wir weitermachen und aufstellen. Wir könnten also sagen, dass C out Seed eine Linie erstellt hat. Wenn wir nun ein Programm ausführen, was Sie tun können, wenn Sie beim Ausführen Ihres Programms hier einen Fehler bekommen haben , können Sie genau diese Nummer kopieren in Ihr Programm zurückkehren. Und ich lösche das hier schnell. Und wo wir ESR haben und hier können Sie einfach genau dieselbe Zahl eingeben, die wir hatten. Und weil dies einen ganzzahligen Wert ohne Vorzeichen benötigt und kein int für einen Ago Head and Catch diese beiden Enzyme. So. Da hast du es. Jetzt können wir jedes Mal dieselbe Nummer erhalten, wir erhalten haben, als wir unseren Fehler hatten, und sie auf diese Weise diagnostizieren. Damit es nur etwas ist, das Sie im Hinterkopf behalten sollten, dass Sie vielleicht eine Möglichkeit suchen, den Wert zu erhalten, der in Ihr Programm eingegeben wurde. Wenn du irgendein Spiel wie Minecraft oder ähnliches gespielt hast , bei dem sie eine Zufallszahlengenerierung haben und sie dir einen Seed geben , mit dem du dieselbe Karte wieder erhalten kannst. Nun, los geht's. Das liegt daran, dass die Kartengenerierung eigentlich nicht zufällig ist. Und Sie können einfach denselben Wert wieder in die Gleichung eingeben und dieselbe Map erneut erhalten . Und los geht's. So erhalten Sie Zufallszahlen in C plus plus. Und jetzt wissen Sie auch, wie Sie den gleichen Satz von Zufallszahlen erhalten , wenn Sie Saft verwenden sollten. Wie auch immer, ich hoffe, Sie fanden dieses Video hilfreich. Danke fürs Zuschauen und wir sehen uns beim nächsten. 45. Kapitel 9 (Container): Einführung in Container, die in den Containern enthalten sind: In diesem Video werde ich mit dir über Container sprechen. Ein Container ist im Wesentlichen nur ein Objekt, das andere Objekte und die Objekte, die er enthält, oder oft als seine Elemente bezeichnet wird . Eine andere Sache bei Containern ist, dass sie eine Menge Funktionen haben , mit denen Sie mit allen darin enthaltenen Elementen arbeiten können . Jetzt gibt es eine Reihe verschiedener Container in C plus plus. Und in diesem Kurs werden wir nur eine Handvoll davon durchgehen. Aber ich empfehle Ihnen dringend all die verschiedenen Container nachzuschlagen und zumindest sehen, was sie tun, damit sie Ihnen zur Verfügung stehen, falls Sie sie benötigen. auch nur einige Funktionen und unsere Methoden für jeden Containertyp , den wir behandeln werden. Wenn Sie also mehr über sie erfahren möchten, empfehle ich dringend, die verschiedenen Funktionen nachzuschlagen damit Sie sehen können, was auch dafür verfügbar ist. Wenn Sie nun entscheiden, welchen Container Sie für Ihr Projekt verwenden möchten, sollten Sie nicht nur einen auswählen, der darauf basiert, wie gut er mit der Bearbeitung all seiner verschiedenen Funktionen umgeht , sondern auch basierend auf den Funktionen selbst. Da jeder etwas hat, können sie ein bisschen anders machen als der andere. Es ist, wie gesagt, Sie möchten auswählen, basierend darauf wie schnell jeder erledigt, eine oder andere Aufgabe, sowie die Funktionalität, die ihm zur Verfügung steht. Und für diejenigen unter Ihnen, die aus einem anderen Programmiersprachenhintergrund kommen , haben Sie vielleicht auch diese als Sammlungen bezeichneten gesehen. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 46. Kapitel 9 (Container): Arrays und Arrays: In diesem Video werden wir über Arrays sprechen. Jetzt. Arrays sind die allerersten Container , über die wir in diesem Kurs sprechen werden, und werden oft als einer der grundlegendsten Containertypen angesehen , die Sie auch in anderen Programmiersprachen sehen werden. Zunächst einmal sind Arrays im Grunde nur eine Gruppe von Elementen desselben Typs, die nacheinander gespeichert sind. Außerdem können Sie mit derselben Kennung auf mehrere Elemente zugreifen. Denken Sie daran, dass ein Container im Grunde nur etwas ist , das mehrere Objekte enthält. Und die Objekte in diesem Container werden als Elemente bezeichnet. Von dort kommt dieses Wort also. Lassen Sie uns also einen Blick auf die grundlegende Syntax für ein Array werfen. Zuerst haben Sie also den Datentyp gefolgt vom Namen, gefolgt von offenen und geschlossenen eckigen Klammern. Und dann beenden Sie das mit einem Semikolon. Und dann haben Sie innerhalb dieser eckigen Klammern die Größe eines Arrays. Wenn Sie jetzt ein Array erstellen und verwenden, wissen Sie, wie groß oder wie viele Elemente Sie in diesem Array speichern möchten, da es wirklich ineffizient ist, dies zu ändern. Lassen Sie uns also weitermachen und ein grundlegendes Array von ganzen Zahlen erstellen. Um das zu tun, werden wir weitermachen und Hallo sagen, um ein int-Array wie dieses zu kaufen. Und dann geben wir ihm innerhalb dieser eckigen Klammern zum Beispiel eine Größe von fünf. Und dann setzen wir am Ende ein Semikolon. Das hier wird also ein int-Array namens int array mit fünf ganzen Zahlen erstellen . Und wir können es nennen, wie wir wollten. Ich habe mich der Einfachheit halber dafür entschieden, es int array zu nennen. Beachten Sie nun, wenn ich mit der Maus darüber fahre, heißt es, dass sie nicht initialisiert sind. Das heißt, sie haben noch keinen Anfangswert. Und es gibt ein paar Möglichkeiten, wie wir weitermachen und ihr eine geben können. Das erste wäre also, es vor das Semikolon zu setzen. Bisher haben wir dieses Array deklariert, aber wir haben keine der ganzen Zahlen und den Anfangswert angegeben . Danach können wir gleich sagen und dann geschweifte Klammern öffnen und schließen, habe ich bemerkt, dass diese gepunkteten Linien hier auf meinem Bildschirm verschwunden sind. Und jetzt hat jede Ganzzahl in unserem Array einen Wert von 0. Das ist also eine Möglichkeit. Sie können jedem ganzzahligen Wert 0 geben, aber wir können ihnen auch einen genauen Wert und verschiedene Werte innerhalb dieser geschweiften Klammern geben einen genauen Wert und . Um das zu tun, können wir einfach so etwas sagen, wo Sie einhundertzweiundzwanzig, einundsiebzig und sechsundsiebzig oder so gehen würden . Jetzt haben alle fünf unserer Integer-Variablen in unserem int-Array einen Anfangswert, den wir festgelegt haben. Also wird der erste für sein, der zweite wird eins sein und so weiter. Auch in C plus plus dürfen Sie dieses Gleichheitszeichen einfach entfernen und dies ist genau so, als ob wir es dort hätten. Persönlich habe ich es gerne dort, da wir hier bereits den Zuweisungsoperator verwenden , um Dinge wie Variablen und ähnliches zu initialisieren. Aber wie gesagt, du kannst es rausnehmen. Also sieht er den Code von jemandem ohne das, du weißt, dass es genau so ist wie bei ihm. Was wäre, wenn wir weitermachen und alle Phyla als Ganzzahlen ausdrucken wollten ? Wie greifen wir auf diese zu? Nun, lass uns weitermachen und eine For-Schleife erstellen. Also sagen wir vier, und dann sagen wir int ich ist gleich 0, ich weniger als fünf, ich plus, plus. Und dann werden wir in unserem Codeblock hier C0 sagen, ich sage int array, weil das der Name unseres Arrays ist, gefolgt von offenen und geschlossenen eckigen Klammern und einem Semikolon am Ende. Und dann müssen wir hier drinnen den Index des eintragen, den wir ausdrucken wollen. Und weil wir bereits einen Iterator haben , der von 0 auf vier steigen wird. Wir werden einfach reingehen. Nun zeigen wir Ihnen, was die Indizes entsprechend sind. So wie Arrays als diese allererste ganzzahlige Variable funktionieren, befindet sich NRA bei Index 0. Also, wenn ich das nur ausdrucken wollte, würde ich hier 0 so eingeben, und dann geht es 01234 usw. Also machen wir einfach weiter und setzen ein I ein. Und danach lass uns weitermachen und reinwerfen eine Fluggesellschaft und führen Sie unseren Code aus. Und wie Sie sehen können, haben wir 41520 bis 121 in 76 ausgedruckt, und um Ihnen zu zeigen, dass diese alle einen Anfangswert von 0 hatten und hier nichts drin ist. Wenn wir unseren Code mit nichts ausführen, geben sie 0 aus. Ordnung, jetzt schauen wir uns den anderen Weg an , um die Werte in unserem Array zu initialisieren. Also lasst uns weitermachen und diese Gleichen und die geschweiften Klammern hier loswerden . Und genauso wie wir auf die Werte in unserem Array zugegriffen haben , um sie auszudrucken. Wir können auch auf die Werte zugreifen, um sie zu initialisieren. Wir können also int array sagen. Und dann könnten wir in eckigen Klammern zum Beispiel 0 setzen. Sag einfach, was auch immer wir wollen, so. Und dann setze ein Semikolon am Ende. Und das wird gut funktionieren. Wir könnten so durchmachen, wenn wir 1234 gehen und jedem von ihnen einen anderen Wert geben wollten . Ordnung, wenn wir einen Code ausführen, können Sie sehen, dass das einwandfrei funktioniert. Und wir gingen 01234. Wir hätten diese in beliebiger Reihenfolge machen können, wenn wir wollten. Nehmen wir an, wir wollten allen genau den gleichen Wert von sagen wir 30 geben. Und nehmen wir an, wir hatten viel mehr als fünf und unser Array. Nehmen wir an, wir haben 100 davon. Nun, anstatt das zu tun, was uns ewig dauern würde, können wir einfach hier runter gehen. Also ich weniger als 100. Und dann hier unten fügen wir einfach eine weitere Zeile darüber hinzu, wo wir unsere Array-Werte ausdrucken und int array sagen. Ich werde i hier noch einmal für den Index verwenden, und wir sagen, ist gleich 30. Und jetzt wird es 3000 Mal gedruckt . Und ich werde sie nicht zählen, aber glauben Sie mir, es gibt 100. Ordnung, es gibt also verschiedene Möglichkeiten , Ihre Arrays zu initialisieren. Außerdem können wir weitermachen und die Variable gleich dem Wert innerhalb eines Arrays setzen, wenn wir möchten. Wir können also sagen, dass x gleich int array ist und dann einen Index wie zum Beispiel einwerfen . Und wenn wir weitermachen und so ausdrucken würden, kommentiere ich diese Zeile. Sie können also sehen, dass das funktioniert, da es eine Menge 30er gibt und los geht's. Da hast du es also. Sie wissen jetzt, wie man mit Arrays arbeitet. Wenn Sie nun ein Array verwenden möchten, zunächst daran, dass die Größe eines Arrays fest ist. Sie müssen also den genauen Wert kennen, aber Sie werden ihn investieren. Und das kann ich Ihnen zeigen, indem ich Folgendes tue. Wenn wir also weitermachen und diese hier löschen und sagen, dass x gleich 100 ist, und dann versuchen, x für die Größe unseres Arrays hier einzufügen. Sie können sehen, dass wir einen Fehler erhalten, weil es sich um einen konstanten Wert handeln muss , der sich nicht ändern kann. Jetzt könnten wir das zu einer Konstante machen und das würde gut funktionieren. Beachten Sie jedoch, dass die Größe Ihres Arrays im Voraus bekannt sein muss. Außerdem sind sie effizient, um die Werte wieder herauszuholen wie wir es hier unten getan haben, als wir sie ausgedruckt haben. Und sie eignen sich hervorragend , wenn Sie die Elemente in Ihrem Array in Ordnung bringen möchten , wie wir es auch hier unten getan haben. Jetzt ging ich zu vermeiden, sie zu benutzen. Nun, Sie sollten sie vermeiden, wenn Sie Elemente aus dem Array einfügen oder daraus entfernen möchten , da sie, wie gesagt, eine feste Größe haben. Wenn Sie also die Größe beim Starten Ihres Programms nicht kennen , ist das ein Problem. Und ein gutes Beispiel dafür, wann du nicht benutzen willst, habe ich Recht? Wie auch immer, das ist es für dieses Video. Im nächsten Video werden wir über etwas sprechen, werden wir über etwas sprechen mehrdimensionales Array bezeichnet wird. Also danke fürs Zuschauen und wir sehen uns im nächsten. 47. 46: In diesem Video werden wir über multidimensionale Arrays sprechen. Nun, der beste Weg, um mehrdimensionale Arrays als Arrays von Arrays zu betrachten . Ein mehrdimensionales Array kann auch so viele Dimensionen haben, wie Sie benötigen oder wünschen Beachten Sie jedoch, dass der verwendete Speicher mit jeder hinzugefügten Dimension drastisch ansteigt. Das ist also etwas, dessen Sie sich bewusst sein sollten. Also habe ich hier ein Beispiel für ein zweidimensionales Array für Sie, das hier in einer Minute erstellt wird. Für 2D-Arrays haben Sie also Ihren Datentyp, Ihren Namen wie zuvor. Aber jetzt müssen Sie anstelle von nur einem Satz eckiger Klammern, müssen Sie anstelle von nur einem Satz eckiger Klammern, wenn Sie ein dreidimensionales Array erstellen möchten, einen dritten Satz eckiger Klammern haben und so weiter. Und dann benötigen Sie die Größe für jede dieser Dimensionen. Und ich habe nur Zeilen und Spalten eingefügt, damit Sie visualisieren können, wie das aussehen würde , wenn Sie dies als 2D-Raster visualisieren , in dem Sie Zeilen und Spalten haben, und Sie können die Elemente eines zweidimensionales Array mit drei Zeilen und drei Spalten , die als solches visualisiert werden. Um nun tatsächlich auf jedes dieser Elemente zugreifen zu können, würden wir das, was hier drüben ist, entsprechend tun. Dieser erste wird also 000102 sein. Dann gehen wir runter zu Zeile eins, Spalte Null, denn denken Sie daran, Indizes beginnen bei Null, wenn es um Container geht. Das wird also 10111220, t1, t2 sein. Ordnung, also lass uns weitermachen und das tatsächlich erstellen und ausdrucken, als wäre es hier oben. Okay, also was wir tun werden, ist, ich sage mehr Typ-Array. Und dann werden wir hier in eckigen Klammern drei sagen. Und wir sagen noch einmal drei. Ich setze am Ende ein Semikolon. Außerdem können wir weitermachen und unser mehrdimensionales Array auf ähnliche Weise initialisieren unser mehrdimensionales Array , wie wir es mit einem regulären Array gemacht haben. Wir können also etwas wie gleich sagen und dann zwei geschweifte Klammern wie diese haben. Und diese werden alle auf Null initialisiert. Ebenfalls. Wir können es andersherum machen, wo wir direkt einen Wert eingeben. Wenn wir also wollen, dass die Werte hier ungefähr so aussehen, könnten wir ein Komma zwei, ein Komma drei sagen . Erstellen Sie dann einen weiteren Satz geschweifter Klammern für die nächste Zeile. Du könntest 456 sagen, und dann mach es noch einmal. Also sieben, neun. Und jetzt müssen wir als letztes das Ganze und einen weiteren Satz geschweifter Klammern tun , damit das funktioniert . Also gehen wir so. Und wir müssen auch ein Komma zwischen jeden Satz setzen. Also einfach so. Und wenn Sie es einfacher zu visualisieren finden, können Sie so etwas tun. Aber wie dem auch sei, ich werde weitermachen und sie wieder so machen, wie sie waren. Dann werden wir weitermachen und tatsächlich jeden Wert ausdrucken und sind ein mehrdimensionales Array. Aber bevor wir das machen, zeige ich dir eine letzte Sache, die ich vergessen habe, dir im letzten Video zu zeigen, und ich zeige dir, wie es auch mit einem mehrdimensionalen Array funktioniert . Also nur für den Fall, dass Sie darauf stoßen, da ich das normalerweise nicht empfehlen würde , weil Sie auf unerwartete Probleme stoßen können , können Sie in meinem Array sagen, zB geben wir dem eine Größe von nichts. Und dann können wir gleich sagen und es dann einfach in unseren geschweiften Klammern so initialisieren . Und das wird tatsächlich gut funktionieren. Und es wird automatisch wissen, dass es die Größe von vier haben wird. Jetzt können Sie dasselbe hier tun, aber Sie können nur diesen ersten Wert entfernen. In diesem Fall wäre es also so, als würde die Anzahl der Zeilen entfernen, was anhand der Anzahl geschweifter Klammern ermittelt wird man die Anzahl der Zeilen entfernen, was anhand der Anzahl geschweifter Klammern ermittelt wird, die wir haben. Dann die Anzahl der Spalten, die Sie angeben müssen, da dies nicht funktioniert. Wie Sie sehen, bekommen wir sofort einen Fehler, oder? Also wollte ich dir das schnell zeigen. Nach der Größe wieder explizit da drin. Dann lassen Sie uns weitermachen und unser Sortiment hier auf eine Weise ausdrucken , die so aussieht. Also mach das, wir werden zwei für Schleifen erstellen , von denen wir sagen werden, dass unsere Nullen kleiner als drei sind, r plus plus. Und dann hier drinnen füge ich eine weitere for-loop hinzu und sage int c ist gleich Null, weniger als drei, C plus, plus. Und wir erstellen so geschweifte Klammern. Und dann drucken wir die Werte aus. Also sagen wir C raus. In Ordnung? Und dann setzen wir hier in eckige Klammern R und dann sind stattdessen andere eckige Klammern. Danach drucken wir einfach ein leeres Feld wie dieses aus . Und darunter für die Schleife, in unserer anderen, werden wir eine leere Zeile erstellen. Genau als Vorwarnung greifen diese Hollywood-Spieler jeden der Werte und unser mehrdimensionales Array zu , initialisieren und bearbeiten sie. Also vorher, wo wir einfach den Namen des Arrays gefolgt vom Index des Elements eingeben würden . Hier würde unser Index ungefähr so aussehen wie ich es Ihnen zuvor gezeigt habe. Was also passieren wird, ist, dass wir unsere erste For-Schleife durchlaufen. Und ich nannte diese Variable sind die Abkürzung für Zeilen, aber du könntest sie nennen, wie du willst. erste Mal durch R wird also gleich Null sein und c wird gleich Null sein. Also wird es Index 00 bekommen und einen ausdrucken , denn das ist es, was wir haben, oder? Und dann geht es noch einmal durch diese Schleife und druckt zwei und dann drei aus. Und dann war ein Huhn wieder da, Reihen werden sich in eins ändern. Wir werden also um 01:01, 112 usw. sein. Also lass uns weitermachen und sie drucken es aus. 123, McDonald-Linie 456, und wieder auf der ganzen Linie 789. Und da hast du es. Nun hätten wir auch eine Double-for-Schleife wie diese erstellen können, um all diese Werte eins bis neun zu initialisieren , wie wir es hier oben getan haben. Also lasst uns weitermachen und sehen das aussehen würde, wenn wir weitermachen und diese Double for Loop kopieren und hier einfügen würden. Beachten Sie, dass wir keine Fehler bekommen haben, weil beide Diese, beide sind lokal für ihren spezifischen Codeblock und existieren außerhalb davon nicht. Kunst hier zu haben und C hier und R hier und siehe hier, es verursacht keine Probleme. Dann lasst uns weitermachen und unsere anfängliche Initialisierung hier oben entfernen . Aber wir können weitermachen und sie alle auf Null initialisieren. Das ist in Ordnung. Und dann unten werden wir sagen, dass int I gleich eins ist. Und dann sagen wir hier, anstatt das auszudrucken, sagen wir Multi-Rate-RNC wie zuvor. Aber stattdessen sagen wir „gleich“. Und dann direkt darunter werde ich plus plus stehen, so dass es jedes Mal um eins steigt. Okay, jetzt lass uns weitermachen und unseren Code ausführen. Wie Sie sehen können, ist das alles initialisiert, in Ordnung. Und der einzige Grund, warum das hier tatsächlich ein paar Zeilen gesunken ist, nur weil wir ihnen die neue Linie hinterlassen haben. Aber wie Sie sehen können, genauso wie wir sie ausdrucken konnten, um dieses Double for Loop zu verwenden. Wir konnten sie der Reihe nach mit einem Double for Loop initialisieren , richtig? Weil es im Grunde genau dasselbe ist. Aber anstatt es nur auszudrucken, haben wir ihm einen Anfangswert gegeben und I jedes Mal um eins erhöht, I jedes Mal um eins erhöht wenn sie ihnen einen Wert in der richtigen Reihenfolge geben. Und obwohl wir all diese zerschnitten haben, könnte ich Ihnen zeigen, wie wir schnell eine Multiplikationstabelle erstellen können und wenn wir wollten. Also lasst uns einfach weitermachen und diese auf zehn ändern, z. B. oder wir könnten sogar so etwas wie, sagen wir mal 30, machen . Und dann wird sich hier unten ändern, stieg auf 34, unser R-Wert. Und beides, und das Gleiche gilt für unseren eigenen Wert. Und wir werden sie hier in allen Fällen auf einmal starten . Dann, weil wir auf beide auf einmal geschossen haben, wenn wir eigentlich wollen, dass die Tabelle volle 30 Ziffern hat, würden wir sie alle auf 31 ändern wollen, so. Dann werden wir genau hier dieses I plus entfernen. es also gleich i setzen, sagen wir R mal C, einfach so. Jetzt können wir Herz entfernen und ich variabel sein. Ordnung, jetzt haben wir ein mehrdimensionales Array der Größe 31 erstellt . Dann haben wir eine for-Schleife mit einer ganzzahligen Variablen erstellt , die bei eins beginnt und weiterlebt, solange sie kleiner als 31 ist. Und wir erhöhen unsere jedes Mal um eins, dann machen wir dasselbe mit C hier unten. Dann setzen wir hier r und c für unsere Indizes und setzen den Index einfach gleich R mal C. Und dann werden wir weitermachen und diese, die Zeilenanweisung hier, entfernen . Aber wir lassen es in dem hier unten. Anstatt hier nur ein einziges Leerzeichen einzufügen, fügen wir einfach einen Tab ein. Und eine einfache Möglichkeit, dies zu tun, wäre, ein einzelnes Zitat wie dieses oder eine Reihe einfacher Anführungszeichen einzugeben, sollte ich sagen. Und dann den umgekehrten Schrägstrich t, wodurch ein Tab erstellt wird. Übrigens, jedes Mal, wenn Sie den Backslash und einen Charakter haben , können Let's nur als einzelnes Zeichen für ein Zeichen betrachtet werden. Ordnung, also werde ich einfach gut laufen. Lassen Sie uns nun unser Programm durchgehen. Und wie Sie sehen können, ist das tatsächlich ziemlich groß. Lassen Sie uns weitermachen und dies für jeden von ihnen auf etwa 11 reduzieren . Und führe unseren Code erneut aus. Und sie gehen 1-10-12 mal zweimal zwei ist vier. Und wenn wir hier hinschauen, sechsmal 636 usw., und wir haben jetzt unsere eigene Multiplikationstabelle mit nur wenigen For-Schleifen und einem mehrdimensionalen Array erstellt unsere eigene Multiplikationstabelle mit . Also es ist sowieso ziemlich ordentlich, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 48. Kapitel 9 (Container): Vektoren: In diesem Video sprechen wir über Vektoren. Und Sie können sich Vektoren im Wesentlichen als ein anpassbares Array mit einigen zusätzlichen Funktionen vorstellen im Wesentlichen als ein anpassbares Array . Und das liegt daran , dass mit ihnen eine Reihe zusätzlicher Funktionen oder Methoden verbunden sind. Und ich zeige Ihnen ein paar davon hier in diesem Video. Wenn Sie jedoch alle möglichen Methoden oder Funktionen sehen möchten , empfehle ich Ihnen dringend, diese nachzuschlagen , da es eine Menge davon gibt. Nun, ganz schnell, habe ich weitergemacht und hier die Syntax für ein Array eingefügt. Wenn Sie sich erinnern, setzen wir den Datentyp, den Namen und dann die Größe und einige eckige Klammern ein. Die Syntax für einen Vektor unterscheidet sich jedoch geringfügig. Wir sagen also Vektor und alle Kleinbuchstaben, gefolgt vom Datentyp dazwischen, ein Zeichen kleiner als und größer als. Und schließlich haben wir den Namen gefolgt von einem Semikolon am Ende. Bevor wir uns nun ansehen, wie einen eigenen Vektor erstellen und verwenden, müssen wir hier oben in unserem Code eine weitere Header-Datei hinzufügen . Wir werden also sagen, dass Hashtag enthalten ist. Und dann, zwischen dem Kleiner-als- und Größer-als-Symbol , sagen wir einfach so, dass Lector jetzt Zugriff auf alles hat, was wir brauchen. Also lasst uns weitermachen und loslegen. Zunächst werden wir Vector sagen. Und dann haben wir zwischen dem Kleiner-als- und Größer-als-Symbol Kleiner-als- und Größer-als-Symbol unseren Datentyp gefolgt vom Namen, und wir nennen das einfach meinen Vektor, einfach so. Und hier drin werden Sie, genau wie bei anderen Containern, genau wie bei anderen Containern, eine Vielzahl von Datentypen platzieren. Bisher haben wir ganze Zahlen verwendet, aber warum setzen wir in diesem Fall nicht einfach Zeichenfolgen ein. Okay, also sagen wir einfach string, und anstatt es meinen Vektor zu nennen, warum nennen wir es nicht einfach Rucksack, so. Und dann, genau wie wir es mit Arrays könnten, können wir tatsächlich weitermachen und sofort einige Elemente in unseren Vektor einfügen, genau hier könnten wir gleich sagen und dann in geschweiften Klammern. Beachten Sie hier, dass wir nicht die Größe unseres Vektors haben und das liegt daran, dass ich gesagt habe, dass er veränderbar ist. Es ist im Grunde eine dynamische Größe, was bedeutet, dass sie sich ändern kann , wenn unser Code ausgeführt wird. Genau hier können wir weitermachen und ihm eine Standardgröße geben , indem wir einige Standardwerte eingeben. wir einfach so, als würden wir hier einen Rucksack füllen. Also setzen wir ein paar Saiten ein. Also könnten wir so etwas wie Buch, Kama, Bleistift sagen. Und wir werfen auch den Notizblock hinein. Okay, das sind offensichtlich willkürlich und nur Worte, aber Sie haben die Idee hier unten. Wir können tatsächlich Dinge aus unserem Vektor ausdrucken , genauso wie wir es mit einem Array tun würden. Wir können also eigentlich einfach Rucksack sagen und dann eckige Klammern darin öffnen und schließen. Wir setzen den Index und der Index funktioniert genauso wie bei Arrays, wo er 012 geht. Also sagten wir Biotech One und wollten das ausdrucken. Wir würden sagen, C out backpack one, so. Und wenn ich meinen Code hier ausführe, können Sie sehen, dass dort Stift steht, weil das die Zeichenfolge bei unserem ersten Index hier oder bei Index eins ist. Das Interessante an Vektoren im Vergleich zu Arrays ist, dass es sich, wie gesagt, um eine dynamische Größe handelt. Wir können dem tatsächlich etwas hinzufügen und es wird ganz am Ende hinzugefügt. Wie ich eingangs sagte, gibt es auch einige zusätzliche Funktionen oder Methoden, gibt es auch einige zusätzliche Funktionen oder die mit Vektoren verbunden sind, die wir verwenden können. Schauen wir uns jetzt auch eines davon an . Hier unten können wir also Rucksack oder das Periodensymbol sagen . Du wirst hier eine Liste von Optionen sehen, zumindest ein bisschen Visual Studio. Aber wir geben einfach die Größe ein und öffnen und schließen dann Klammern und ein Semikolon am Ende. Dies wird uns die genaue Größe unseres Rucksackvektors mitteilen . Und wenn wir wollten, könnten wir das auch ausgeben. Ich sage C davor, einfach so. Und lass uns weitermachen und hier eine neue Zeile einwerfen. Dafür gibt es eine Frist, nur damit es nicht in der gleichen Linie steht. Und jetzt, wenn unser Code läuft, wird er einen Bleistift ausdrucken. Zumindest in diesem Fall. Und dann wird genau hier die Größe ausgedruckt. Und anders als bei Indizes, bei denen es 012 geht, wird die Größe 123 gehen, genau wie Sie es erwarten würden wenn er die Größe von etwas wissen wollte, sie wissen genau, wie viele Artikel darin enthalten sind. Es sollten also drei gedruckt werden. Und wenn wir unseren Code hier ausführen, können Sie sehen, dass er genau das tut. Wir drucken es aus Bleistift und dann in einer neuen Zeile drucken wir es drei aus. Wie fügen wir also tatsächlich Artikel zu unserem Vektor hinzu? Nun, wenn wir hier runter gehen, können wir sie einfach wieder da hinten kleben, damit sie weiß, worauf wir uns beziehen oder womit wir arbeiten wollen, was in diesem Fall ein Rucksack wäre. Und dann sagen wir Punkt und sehen uns dann diese Pushback-Methode hier an. Das werden wir schreiben. Wir sagen „Push“ und das Ergebnis zurück. Und dann setzen wir in Klammern, was wir hinzufügen wollen, zu unserem Vektor. Also setzen wir einfach den Wert ein, den wir hinzufügen möchten, genau wie wir hier oben einen Bleistift in Notepad setzen und eine weitere Zeichenfolge hinzufügen, eine weitere Zeichenfolge hinzufügen, da unser Vektor aus Strings besteht. Also genau hier, lass uns einfach so etwas wie einen Thriller nehmen und am Ende ein Semikolon setzen. Und jetzt wird das Lineal bei Index drei sein , weil wir 012 haben und dann fügen wir diesen hinzu. Das wären also drei. Und hier unten sagen wir CL Backpack drei. Und lassen Sie uns weitermachen und sicherstellen, dass es auf eine neue Linie gesetzt wurde. Also sagen wir einfach so M line und führen unseren Code aus. Das sieht man als den Etuisbleistift. Erscheint, drei ausgedruckt, ein Lineal hinzugefügt und dann gedruckt, was bei Index drei war. Genau hier fällt es uns ziemlich leicht zu erkennen, dass dieser Linealpunkt, den wir gerade hinzugefügt haben, bei Index drei steht und besagt, dass alles genau hier im FBI ist, genau hier auf unserem Bildschirm. Aber was wäre, wenn wir nur den letzten Artikel in unserem Vektor ausdrucken wollten ? Aber wir wussten nicht genau, welcher Index das war. Nun, da wir diese Größenmethode haben , die wir verwenden können uns die genaue Größe mitzuteilen. Wir könnten eigentlich einfach sagen, Rucksackpunktgröße. Danach müssen wir minus eins sagen. Nun, der Grund, warum wir dieses Minus hier haben , ist, dass, obwohl unser Rucksack oder eine Vektorgröße gabelt, wir hier vier Artikel haben, er hat keinen Index von vier, weil er 0123 lautet. Und wenn wir hier auf den tatsächlichen Wert zugreifen und ihn ausdrucken wollen , anstatt hier nur drei auszudrucken, setzen wir ihn in eckige Klammern nach dem Namen unseres Vektors, genau wie wir es tun würden, wenn wir versuchen würden hier auf einen anderen Wert zuzugreifen. Lass uns weitermachen und das reduzieren. Und wir sagen Rucksack in eckigen Klammern. Lass uns weitermachen und das so einfügen. Jetzt wird es ausdrucken, was der Rucksackindex vier minus eins oder was auch immer die maximale Größe minus eins ist, was immer der letzte Artikel in unserem sein wird, okay, so kannst du den letzten Artikel bekommen , solltest du es brauchen? Und wenn wir unseren Code hier ausführen, können Sie Weizen sehen, der tatsächlich Lineal ausdruckt. Jetzt können wir auch Elemente aus unserem Vektor entfernen und diese werden in derselben Reihenfolge entfernt. So wie es es ganz am Ende unseres Vektors hinzufügt, können wir Dinge vom Ende unseres Vektors entfernen. Also ganz schnell, ich werde einfach weitermachen und diesen C-Out-Rucksack entfernen. Eine Linie haben wir hier, also erstellen wir einen Rucksack. Wir drucken die Größe aus, die in diesem Fall drei ist. Wir fügen einen Artikel hinzu, wir drucken aus, was unser letzter Artikel ist, dann entfernen wir den letzten Artikel. Also hier unten werden wir diese Operation sagen und sie wieder unterstreichen. Alle Kleinbuchstaben dort, offene und schließende Klammern und ein Semikolon am Ende. Und das wird den letzten Gegenstand direkt aus unserem Vektor herausdrücken . Wenn wir also unseren Druck des letzten Artikels hier kopieren und ihn unten einfügen und was nicht beschichtet ist, können Sie sehen, dass wir zuerst eine neue Zeile erstellt haben, dann haben wir drei ausgedruckt, weil ist die Größe unseres Vektors. Dann haben wir einen Linealgegenstand hinzugefügt, den letzten Gegenstand als Lineal ausgedruckt, der besagt, dass wir das gerade hinzugefügt haben und dann das Lineal losgeworden sind. Jetzt ist unser letzter Artikel Notepad und wir haben ihn auch ausgedruckt. Also los geht's. Sie wissen jetzt, wie man eine erstellt und verwendet. Und diese drei Methoden hier, die Größe, die Pushback- und die Popback-Methode, sind wahrscheinlich die drei gebräuchlichsten Methoden und ODER-Funktionen , die Sie verwenden werden, wenn es darum geht Vektoren. Wann möchten Sie also einen Vektor verwenden? Nun, wenn Sie möchten, dass eine Menge Daten in der richtigen Reihenfolge gespeichert werden , genau wie bei einem Array. Und wenn Sie die Größe zum Zeitpunkt der Kompilierung oder beim Ausführen Ihres Codes nicht kennen . Wir wussten also nicht, wie groß die Größe sein würde, und wir mussten keine Größe eingeben , wie wir es bei einem Array getan haben . Es konnte sich einfach dynamisch ändern, als unser Code gemietet wurde. Wenn Sie das also benötigen, Sie die Verwendung eines Vektors in Betracht ziehen. Und wenn Sie vorhaben, Elemente ganz am Ende des verwendeten Containers hinzuzufügen und zu entfernen , ist ein Vektor eine weitere gute Option, denn wie Sie hier gesehen haben, gibt es dafür eine Methode. Und weil unsere Informationen in der richtigen Reihenfolge gespeichert sind, hätten wir das durchgehen und alles ausdrucken können, genau wie wir es mit unserem Array konnten. Wann würden Sie jetzt keinen Vektor verwenden wollen? Nun, wenn Sie versuchen, Elemente vor dem Vektor hinzuzufügen oder zu entfernen , was bedeutet, dass das Buch hier hinten, wo sich das Buch bei Index 0 oder irgendwo in der Mitte befand . Vor allem, wenn Sie viel mehr Artikel hier haben, dann ist dies wahrscheinlich nichts für Sie. Auch wenn Sie die Größe des Containers bereits kennen und sich das nicht ändern wird. Könnte genauso gut einfach ein Array verwenden. Jetzt ist es dunkel hier. Lassen Sie uns weitermachen und alles in unserem Vektor ausdrucken , um Ihnen einen weiteren netten kleinen Trick zu zeigen , den wir aufgrund dieser zusätzlichen Funktionen mit einem Vektor machen können . Also genau hier werde ich sagen, für int ist ich gleich 0, ich bin kleiner als die Größe der Rucksackwürfel. Dann werde ich plus, und dann darunter in geschweiften Klammern einfach Rucksack sagen. Und dann eckige Klammern. Wir sagen Hallo und danach erstellen wir einfach eine neue Zeile wie diese. Und jetzt wird es alles in ihrem Rucksack ausdrucken , unabhängig davon wie viele Gegenstände sich in unserem Peck befinden, Peck, oder? Weil es jetzt dynamisch ist, basierend auf der Größe. Und dann lass uns weitermachen und alles hier oben entfernen, genau wie zuvor, unsere for-Schleife und unseren Code ausführen. Und wie Sie sehen können, haben wir Buch, Bleistift und Stift ausgedruckt. Und selbst wenn wir hier unsere Größe ändern und das hier oben tun könnten, oder wir könnten es wieder mit unserer Push-Back-Funktion tun. Also sagen wir Rucksack Dot Push Back. Dann wird in Klammern so etwas wie Zehner stehen. Und wenn wir dann unseren Code ausführen ohne hier etwas zu ändern, können Sie sehen, dass wir jetzt Stifte ausgedruckt haben. Also los geht's. Es gibt nur einen weiteren Anwendungsfall für die Größenmethode. Und noch ein Grund, warum Sie vielleicht einen Faktor für die zusätzliche Funktionalität verwenden möchten , über die wir am Anfang gesprochen haben. Und das liegt daran, dass wir, wie Sie sehen, unseren Vektor ändern können, indem die Größe erhöhen und verringern. Und unser For-Loop muss sich nie ändern. Und bevor ich es vergesse, lassen wir diese Vektor-Header-Datei und unseren Code von nun an zusammen mit dem Rest davon. Und das werden wir von nun an weiter machen. Jedes Mal, wenn wir eine Header-Datei hinzufügen, belassen wir sie einfach, sofern nicht anders angegeben. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 49. Kapitel 9 (Container): Warteschlangen: In diesem Video werden wir über Warteschlangen sprechen. Jetzt ist eine Warteschlange ein anderer Containertyp. Sie sagen normalerweise First-In, First-Out-Art der Vereinbarung. Was auch immer vor der Warteschlange steht, es würde zuerst aus der Warteschlange gehen. Und Sie können sich das so vorstellen , als würden Sie sich anstellen, um an die Kasse eines Lebensmittelgeschäfts zu gelangen oder so ähnlich. Wer zuerst da ist, wird zuerst rauskommen. Also zuerst rein, zuerst raus. Jetzt ist die Syntax dafür der Syntax eines Vektors sehr ähnlich der Syntax eines Vektors , den wir gerade im letzten Video gesehen haben. Aber anstatt Vektor zu sagen, sagen wir einfach Warteschlange. Noch einmal in Kleinbuchstaben. Oben hier werden wir weitermachen und auch die Header-Datei einbinden. Und das wird einfach Warteschlange genannt und achte darauf , das für den Rest des Kurses dort zu behalten. Also ganz oben hier, und wir werden sagen, dass Hashtag so eingebunden ist. Lassen Sie uns nun weitermachen und mit Acute arbeiten. In diesem Beispiel erstellen wir einfach eine Warteschlange mit ganzen Zahlen. Hier. Wir sagen Q, dann R-Datentyp mit ihnen das Kleiner-als-und Größer-als-Zeichen. Also sagen wir, danach geben wir dem einen Namen. Warum nennen wir das nicht einfach so etwas wie Quizergebnisse. Okay, dann lass uns weitermachen und tatsächlich einige ganze Zahlen zu r cubed hinzufügen. Dazu müssen wir unten den Namen unserer Warteschlange nennen, damit sie weiß, wovon wir überhaupt sprechen. möchte nicht Punkt, Druck und in Klammern sagen, wir setzen einfach das, was wir hinzufügen möchten, in ein drahtloses Semikolon am Ende und sagen so etwas wie eine 100. Und lassen Sie uns noch ein paar weitere hinzufügen , die wir in die gewünschte Zahl eingeben können. Gefällt mir. also bei einer Warteschlange Wenn wir also bei einer Warteschlange etwas ausdrucken wollen, geben Sie q ein, das können wir eigentlich nicht tun. Wir haben es in der Vergangenheit getan, also können wir kein Quizergebnis sagen. Und dann in eckigen Klammern, sagen wir zum Beispiel wie zwei , mit einem Semikolon am Ende funktioniert das nicht. Und Sie können hier sehen, und wenn ich versuchen würde, hier draußen C zu sagen, würde uns das nicht erlauben, wir werden einen Fehler bekommen. Wie machen wir das? Nun, wenn du deine gesamte Warteschlange aussprechen willst, wirst du Folgendes tun. Also erstellen wir zuerst eine While-Schleife und dann setzen wir das Nicht-Symbol und unseren Zustand hier ein, gefolgt vom Namen unserer Warteschlange, den Quizergebnissen. Und dann sagen wir sterben, leer, alles Kleinbuchstaben mit offenen und geschlossenen Klammern, so. Was wir hier sagen, ist, dass Quizergebnisse zwar unser q sind, aber nicht leer sind, sodass dieses leere Feld true zurückgibt, wenn es leer ist , und falsch, wenn es nicht leer ist. Aber wenn Sie sich erinnern, weil wir diesen Knoten hier haben, wird der gegenteilige Effekt erzielt. sich gut kleiden, sind die Quizergebnisse nicht leer. Wir wollten Folgendes tun. Und wir wollen ausdrucken was vorne in unserer Warteschlange steht. Und wenn Sie sich erinnern, verwendet der Q-Container ein First-In, First-Out. Also, wenn wir hier nachschauen, 100 waren die ersten, es wird die erste sein, die wir ausdrucken. Und um das zu tun, sagen wir einfach CL. Und danach werden wir Quizergebnisse sagen. Und das wird ausdrucken, was sich vorne in der Warteschlange befindet. Das waren nur offene und schließende Klammern wie diese in einem Semikolon am Ende. Diese Front-Methode gibt hier also den Wert an der Spitze der Warteschlange zurück. Und es gibt auch eine Sicherungsmethode , um herauszufinden, was sich am Ende der Warteschlange befindet. Aber wenn wir in der Lage sein wollen, alles zu bekommen, also nicht nur die Vorder- oder Rückseite, alles dazwischen, müssen wir tatsächlich anfangen, sie zu entfernen. Also wie ich schon sagte, man kann sich vorstellen , dass irgendwo eine Warteschlange ansteht. Die erste Person geht in die zweite, die dritte, die vierte. Und alles wird in Ordnung sein. Und so wird es hier sein. Okay? Genau unten hier werden Sie Quizergebnisse, offene und schließende Klammern und ein Semikolon am Ende sagen . Also ich, Quizergebnisse Punktplot tut es, ist, dass es tatsächlich das Element entfernt und die Vorderseite unserer Warteschlange es einfach los wird. Das wird weg sein. Was nun passieren wird , ist, dass wir zuerst eine Warteschlange mit dem Q, R-Datentyp zwischen dem Symbol Kleiner als und Größer als erstellt R-Datentyp zwischen dem Symbol Kleiner als und Größer und ihr einen Namen gegeben haben. Dann haben wir Elemente hinzugefügt, indem wir einfach ihren Namen dot push gesagt haben, und in welcher Reihenfolge wir diese in der Reihenfolge hinzugefügt haben, sie werden in einem RQ sein, und es ist auch die Reihenfolge, in der sie verlassen werden. Der erste geht zuerst, der zweite, der zweite, dritte, dritte und so weiter. Dann hier unten , um diese auszudrucken. Denn wie gesagt, wir können nur Front-Methode oder der Methode auf diese vordere in dieser hinteren zugreifen mit der Front-Methode oder der Methode auf diese vordere in dieser hinteren zugreifen. Aber hier benutzen wir nur die, die Front genannt wird. Und wir sagten, wow, Quizergebnisse sind nicht leer, was bedeutet, dass immer noch etwas in unserer Warteschlange steht. Wir drucken aus, was sich vorne befindet, und entfernen dann mit der Pop-Methode, was sich vorne befindet. Und vielleicht erkennen Sie das Wort Pop und das Wort Push aus der Zeit, als wir im letzten Video mit Vektoren gearbeitet haben, außer dass wir Pushback in, Pop Back speichern mussten. Bevor wir unseren Code hier ausführen, lassen Sie uns weitermachen und hier eine neue Zeile einwerfen. Also wenn ein Code, und Sie können sehen, haben wir 18034 der Datei ausgedruckt. Und bevor wir dieses Video abschließen, zeige ich Ihnen nur eine letzte Methode. Also kurz vor einer Weile live, wenn wir Quizergebnisse, Punktgröße, Öffnung, Klammer schließen und am Ende ein Semikolon sagen Punktgröße, Öffnung, Klammer schließen . Und lasst uns weitermachen und das tatsächlich ausdrucken. Also sag CL kurz davor wird danach auch ein neues erstellt und unser Code ausgeführt. Sie können sehen, dass es die Größe ausdruckt, genau wie wir es mit unserem dort gemochten machen konnten. Das ist also immer nett. Also haben wir 1803455 für verschiedene Elemente hier mit dem print that out oder erhalten diesen Wert mit der Größenmethode wo, aber überprüfen Sie mit der leeren Methode, ob er leer ist. Wir haben auch gelernt , wie man die Vorderseite des Würfels mit der Front-Methode überprüft . Und wir wissen auch, dass wir mit der back-Methode, die genau so geschrieben ist, wie Sie denken , den hinteren Teil der Warteschlange erhalten können mit der back-Methode, die genau so geschrieben ist, wie Sie denken , den hinteren Teil der Warteschlange , bei der Sie in Kleinbuchstaben zurück sagen und vorne einrichten. Und wenn Sie sich das wie eine Schlange in einem Geschäft oder so etwas vorstellen, dann ist dies die Frontlinie und dies wird am Ende der Linie sein. diese Weise können Sie sich leicht daran erinnern welchen Wert Sie erhalten, wenn Sie vorne oder hinten sagen. So wissen Sie jetzt, wie man den Cue erstellt und mit ihm arbeitet, wie man Werte hinzufügt und Werte entfernt. Wir stellen fest, dass es sich um einen First-In - und First-Out-Container handelt, und wir kennen eine Handvoll der damit verbundenen Methoden. Und wie bei den anderen Containern gibt es einige andere Funktionen, die Sie mit diesem Bereich verwenden können , die damit verbunden sind. Und wenn Sie interessiert sind, schauen Sie sich diese trotzdem an. Aber das war's für dieses Video. Aber bevor Sie mit dem nächsten fortfahren , aber ich möchte, dass Sie alles speichern, was Sie haben, denn wir werden es im nächsten Video verwenden, wenn wir über einen sehr ähnlichen Container sprechen . wird als Stack bezeichnet. Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 50. 49: In diesem Video werden wir über einen anderen Containertyp sprechen , der als Stack bezeichnet wird. Wie ihr sehen könnt, habe ich diesen Code hier aus unserem letzten Video, denn falls ihr ihn verpasst habt, wollte ich, dass ihr das speichert, was wir vor ihnen hatten , weil wir ihn in diesem Video wieder verwenden werden. Und wenn Sie es vergessen haben, keine Sorge, kopieren Sie einfach, was ich hier auf dem Bildschirm habe. Bevor wir zu Aktien kommen, müssen wir eine weitere Header-Datei hinzufügen. Also oben sagen wir Hashtag-Food. Und dann werden wir das zwischen dem Symbol „ Weniger als“ und „ Größer Symbol „ Weniger als“ und „ Größer als“ einfach so sagen. Und noch einmal, wir werden das für den Rest des Kurses belassen . Stellen Sie also sicher, dass Sie sagen, dass sie jetzt mit dem tatsächlichen Code hier unten sind. Lassen Sie uns einen Blick auf die Unterschiede zwischen einem Stack und einer Warteschlange werfen. Zunächst einmal der einzige Syntaxunterschied zwischen einem Stack und einer Warteschlange, denn anstatt q zu sagen, werden wir stack sagen. Wie einfach ist das? Also sagen wir Stack. Einfach so. Wir können unseren Namen hier hinterlassen, wenn wir wollen. Wir können diese Methoden sogar hier belassen, wenn wir wollen, weil sie genau auf die gleiche Weise gearbeitet haben. Und es hat auch eine Push-Methode, die diese vor die andere stellt . Ein Stack funktioniert jedoch und die Last-In-First-Out-Anordnung . Wenn Sie also daran denken möchten, Blöcke zu stapeln, legen eine Karte auf eine andere und ziehen dann immer von oben. Im Grunde so funktioniert das. Also das hier wird tatsächlich wie unsere untere Karte sein, z. B. und dann haben wir unsere darüber, die darüber und die darüber. Und wenn wir dann daraus schöpfen, werden wir so in die entgegengesetzte Richtung zurückkehren . Der letzte wird der erste sein. Das hier ist also die Spitze unseres Stacks. Hier ist der Boden. Denken Sie also daran, dass jetzt auch unsere Größenmethode hier funktioniert. Wir müssen dort also nichts ändern. Wenn wir hier zu unserer While-Schleife kommen, werden Sie feststellen, dass diese verängstigte Methode einen Fehler aufweist, und das liegt daran, dass wir die Methode front nicht mehr haben. Stattdessen sagen wir einfach top. Die Spitze unseres Stacks ist also das , was wir bekommen werden, wenn wir sagen, komm für dich her, platze oben auf unserem Stapel, Ordnung, damit alles andere genau gleich bleiben kann. Lass uns fantastisch sein. Wenn Sie mit einem Stack oder einer Warteschlange arbeiten möchten, wird sich so ziemlich nichts ändern, außer mit den Methoden, die wir hier gesehen haben, wo die Funktion, Sie möchten dies nur anstelle der Front-Methode ändern das gab uns den ersten Wert, der in unsere Warteschlange gesetzt wurde, wir haben diese Top-Methode , weil das der letzte Wert ist, der in unsere Warteschlange gesetzt wurde, weil wir mit einem Last-in, First One Out Typ von arbeiten First One Out Typ von Arrangement, wenn es um Stacks geht. Wenn wir also unseren Code hier ausführen, können Sie sehen, dass alles funktioniert. Wir haben jedoch unsere Zahlen und die entgegengesetzte Richtung wie bei unserer Warteschlange ausgedruckt , da es sich um einen Stapel handelt und eher als Last-In, First-Out als First-In-First-Out fungiert. Also, weil 55 ganz oben auf unserem Stapel standen und mit 553.480,100 die erste unserer Snack-Suiten waren. Und der Grund, warum wir hier oben vier haben , ist, dass wir auch die Größe ausgedruckt haben und vier Elemente darin haben. Jetzt möchte ich auch erwähnen, dass die Front-Methode nicht existiert, ebenso wenig wie die Back-Methode. Du kannst diesen Tiefstwert nicht erreichen, und das ist so ziemlich alles für dieses Video. Jetzt, genau wie bei den anderen Containern oder anderen Funktionen und unseren Methoden da draußen. Und ich empfehle Ihnen dringend, sie sich anzusehen, wenn Sie daran interessiert sind , einen Stack in Ihrem Programm zu verwenden. Wann würden Sie also eine Warteschlange verwenden wollen und wann würden Sie einen Stack verwenden wollen? Wenn Sie also einen Container suchen, der im First-in-First-Out-Stil funktioniert , verwenden Sie die Warteschlange. Und wenn Sie es eindämmen möchten, funktioniert es in einem Last-In-First-Out-Stil. Sie können den Stack verwenden, aber denken Sie daran, dass Sie wirklich nur Zugriff auf den letzten Wert haben , den Sie in einen Stapel und eine Warteschlange legen, Sie haben Zugriff auf beide. Bei einer Warteschlange können Sie jedoch nur den ersten Wert herausnehmen , der mit einem Stapel eingegeben wurde , der letzte Wert ist. Du musst also den letzten Platz als Erster und einen First-in-First-Out erreichen. Aber wenn Sie mit diesen mittleren Werten arbeiten müssen, denken Sie daran, dass sie wahrscheinlich nur einen anderen Container verwenden möchten . Und wir haben bereits über einige davon gesprochen, aber es gibt noch einige andere da draußen. Wenn Sie also daran interessiert sind, schauen Sie sich das an. Andernfalls wird in einem zukünftigen Video in diesem Kurs mindestens ein weiteres angezeigt, das als Map bezeichnet wird. Also bleib dran darauf. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns beim nächsten. 51. Kapitel 10 (für jede Schleife): Einführung in die einzelnen Schleifen: In diesem Video werden wir über eine neue Art von Loop sprechen . Das für jede Schleife, was eine für jede Schleife tut, ist ein Codeabschnitt für jedes Element in einem Container eines bestimmten Typs ausgeführt jedes Element in einem Container eines wird, um eines davon zu erstellen. Und im nächsten Video werden wir genau sehen, wovon ich spreche, aber ich wollte Ihnen nur ein kurzes Einführungsvideo geben ein kurzes Einführungsvideo was sie sind und was sie tun. Die andere Sache, die bei einer foreach-Schleife zu beachten ist, ist, dass sie die Werte tatsächlich in einen Container kopieren , den sie für ihren Betrieb verwenden. Und ich zeige Ihnen ein Beispiel dafür , wenn wir auch daran arbeiten. Außerdem laufen die Schleifen jeweils nur der Reihe nach durch einen Container. Dies ist zu beachten, dass es von Index 0 bis zum Ende gehen wird. Lassen Sie mich Ihnen nun ein paar Beispiele geben wann Sie für jede Schleife eine verwenden möchten. Ein Beispiel könnte sein , dass Sie alles in einem Container ausdrucken möchten . Sie können also den Wert jedes Elements ausdrucken und möchten vielleicht die Größe eines Arrays erhalten. Nun, Sie könnten zum Beispiel eine Variable haben und dann in Ihrem a für jede Schleife könnten Sie sagen, dass wir für jedes Element in unserem Array diese Variable um eins erhöhen werden. Sie könnten also auch eine für jede Schleife verwenden, um die Größe eines Containers zu ermitteln, nur als Beispiel , das ist es für dieses Video. Im nächsten Video werden wir eine For-Each-Schleife erstellen und damit arbeiten und sie mit vergleichen einer For-Loop vergleichen, von der wir in der Vergangenheit gelernt haben. Nur damit Sie die Unterschiede erkennen und erfahren , wann Sie einen über dem anderen verwenden möchten. Also danke fürs Zuschauen und wir sehen uns im nächsten. 52. Kapitel 10 (für jede Schleife): Für jede Schleife: In diesem Video erstellen wir tatsächlich eine Working With für jede Loops und vergleichen sie mit einer FOR-Schleife, damit Sie den Unterschied erkennen und wissen, wann Sie eine über der anderen verwenden müssen. Der Grund, warum ich beschlossen habe, eine einfache Schleife in zwei verschiedene Videos zu unterteilen , liegt daran, dass ich persönlich für jede Lippe ziemlich verwirrend fand , zumindest die Art, wie sie es mir beim ersten Mal erklärt haben habe sie gelernt. Also wollte ich nur sicherstellen, dass es Schritt für Schritt aufgeschlüsselt werden kann , und wirklich sicherstellen, dass Sie verstehen, wie und wann Sie sie ohne Probleme verwenden können. Zunächst erstellen wir also ein Array von zehn ganzen Zahlen. Also sagen wir hier meine eckigen Klammern. Wir setzen zehn ein, so. Und wir werden dem hier keinen Wert geben. Und dann sagte ich, wir machen es in einer For-Schleife. Also hier unten sagen wir für int ist ich gleich 0, ich weniger als zehn, ich plus, plus. Dann geben wir innerhalb unserer For-Loop hier jedes Element in unserem Array und den Anfangswert an. Also sagen wir mein Array bei Index. I. Erinnerst du dich , dass du das einfach in eckige Klammern gesetzt , als ob das gleich ist, Jetzt setzen wir das auf fünf. Dann oben oder für die Schleife. Lass uns weitermachen und sram sagen. Und wenn Sie sich daran erinnern, wie man das hier drinnen benutzt , sagen wir Zeit und in Klammern sagen wir nein. Und wenn du merkst, wenn wir hier mit der Maus über S fahren und tatsächlich einen unsignierten int nehmen. Manche Leute stellen also gerne sicher , dass sie einen unsignierten Int zurückbekommen und sagen dort einfach so unsigniert in Klammern. Und sie werden sicherstellen, dass Sie mit dieser Zeitmethode einen positiven Wert erzielen. Dann hier unten, anstatt alles auf fünf zu setzen, sagen wir Rand in Klammern wie diesen, gefolgt vom Modulo-Operator. Und wir setzen es auf 100 plus eins. Und lassen Sie uns weitermachen und dies in Klammern setzen , um sicherzustellen, dass die Reihenfolge der Operationen korrekt ist, oder um sie explizit zu definieren. Und dann unten, lass uns weitermachen und eine weitere für eine Schleife zum Ausdrucken unserer Variablen erstellen . Ja, ich weiß, wir könnten es hier ausdrucken, aber du wirst gleich sehen, warum wir das machen. Also hier unten sagen wir , Zeit ist gleich 0, I, weniger als zehn. Ich plus, plus. Und dann wird in geschweiften Klammern mein Array-Index I sagen. Und wir werden tatsächlich C aus meinem Array-Index sagen, ich werde nach jedem eine neue Zeile erstellen, so. Darunter werden wir genau das Gleiche tun, was wir in diesen beiden für Loops gemacht haben. Was wir in R für jede Schleife machen werden. Aber lassen Sie uns zuerst unser Programm ausführen und sicherstellen , dass alles funktioniert. Wie Sie sehen können, haben wir hier zehn scheinbar zufällige Zahlen, zwischen 1100. Und jetzt. Lassen Sie uns das alles ganz schnell kommentieren. Und wir werden es tatsächlich hier belassen, also lösche es nicht. Und darunter werden wir für jede Schleife dasselbe tun. Also hier unten werden wir unsere erste foreach-Schleife erstellen. Und die Syntax dafür wird wie folgt aussehen. Die Syntax für a, für jede Schleife sieht also so aus. Wir sagen vier. Und dann sagen wir in Klammern den Datentyp unserer Elemente, gefolgt von einem Variablennamen, dann einem Doppelpunkt. Und zuletzt der Name unseres Containers, mit dem wir arbeiten werden. Also hier werden wir unseren Container einfach so haben. Und falls Sie sich nicht sicher sind, was ich mit all dem hier gemeint habe. Sie werden in einer Sekunde sehen, wenn wir weitermachen und es erstellen, und dann werde ich es noch einmal durchgehen. Ich werde am Ende laden, um sicherzugehen, dass du es verstehst. Lassen Sie uns nun weitermachen und tatsächlich eines erstellen, das mit unserem Array funktioniert. Sagen wir für in unserem Array Datentyp als int. Das wird also der Datentyp unserer Elemente dort sein. Also hier drin, sagen wir mal für int, dann kann unser Variablenname sein, was wir wollen. Also lass uns einfach weitermachen und so etwas wie Eier legen. Und danach setzen Sie einen Doppelpunkt gefolgt vom Containernamen , der in diesem Fall mein Array ist. Und danach habe ich eine Reihe von geschweiften Klammern. Und los geht's. Wir haben jetzt für jede Schleife eine erstellt. Wie genau liest du das? Nun, ich weiß, was die vier hier miteinander verbindet, aber stell dir mal hier für eine Minute vor. Dies ist für jedes Element in unserem Array, Sie möchten eine Variable namens x erstellen und diese gleich dem Element setzen. Während es hier durch unser Array geht, wird x jedem Element gleich sein, während es durchläuft. Hoffentlich macht das Sinn. Wenn nicht, drucken wir das Ergebnis dessen aus , worüber ich hier spreche. Also müssen wir zuerst alle Variablen in unserem Array initialisieren. Das können wir tatsächlich mit unserer Foreach-Loop-Periode tun. Aber zuerst müssen wir so etwas sagen. Wir sagen, es ist gleich 0. Und dann jedes Mal, wenn wir unsere foreach-Schleife durchlaufen, was die gleiche Zeit wie Elemente in unserem Array sein wird , weil unsere foreach-Schleife einmal pro Element in unserem Array ausgeführt wird . Also hier drin sagen wir „ I plus plus“. Und wir sagen hier auch mein Array in eckigen Klammern. Wir sagen, ich sei gleich, und lass uns einfach weitermachen und es gleich I setzen. Dann unten erstellen wir für jede Schleife durch unser Array eine weitere. Also sagen wir für ein Array. Und in diesem Codeblock wird es einfach ausgedruckt. Also sag x line und was ist unser Code. Um Ihnen einen besseren Überblick darüber zu geben, was hier passiert, gehen wir weiter und gehen in mein Array hier unten und führen unseren Code erneut aus. Okay, wie Sie sehen können, haben wir ein Array erstellt, genau wie wir es in der Vergangenheit mit zehn ganzen Zahlen getan haben. Dann haben wir hier einen Iterator erstellt, indem wir einfach eine Variable namens I erstellt und sie auf 0 gesetzt haben. Dann sagten wir, dass wir für jede Ganzzahl in unserem Array eine Variable namens x erstellen wollen. Dann sagten wir, dass wir für jede Ganzzahl in unserem Array diesen Codeblock ausführen wollen. Und wenn wir das tun, wollen wir x gleich für jedes Element setzen, während wir es durchlaufen. Das erste Mal durch x ist also gleich Element 0, dann eins, dann 23 usw. Jetzt müssen wir uns keine Gedanken darüber machen, dass dies nicht initialisiert wurde , weil wir nichts mit x gemacht haben. Stattdessen Ich sagte gerade mein Array bei mir, ich war 0. Der Index 0 ist also gleich I, was beim ersten Durchlaufen 0 ist. Dann haben wir es um eins erhöht und zehnmal durchlaufen, wobei wir unseren Elementen den Wert 0 bis neun gegeben haben. Danach haben wir für jede Schleife eine weitere erstellt. Wir sagten, dass wir für jede Ganzzahl und unser Array diesen Codeblock durchlaufen werden. Ich möchte nicht, dass x jedem der Elemente gleich ist, während wir es durchlaufen. Da Element 0 also 0 war, ist x 0 und gibt es dann 0 aus. Dann das nächste Mal durch, weil Element eins eins war, X0, X1, und dann drucken Sie es eins aus und so weiter. Und das ist genau das Gleiche, als ob wir unser Interesse hier geweckt und es nach oben verschoben hätten. Ich habe unseren Code hier kommentiert. Und ich werde weitermachen und das zufällige, vielleicht hier, abschneiden und es einfach gleich I und auf Code setzen. Und wie Sie sehen können, haben wir 0 bis neun aus unseren beiden For-Loops ausgedruckt , und wir drucken sie erneut 0 bis neun mit unseren vier Schleifen aus. Also haben wir hier dasselbe gemacht wie hier. Wann würden Sie also eine für jede Schleife anstelle einer Form der Schleife verwenden wollen? Nun, ich persönlich denke, wenn wir die Werte in unserem Array initialisieren, sieht das viel sauberer aus als einer. Unser Iterator ist völlig getrennt. Dann befindet sich unser Variablen-Update hier mit I plus auch in einer separaten Zeile. Es ist auch nicht klar, wie viele Elemente sich in unserem Array in diesem Codeblock befinden. Ich persönlich denke, das sieht für unsere Initialisierung viel sauberer aus. Was ist nun, als wir einfach alles in unserem Array ausdrucken wollten ? Nun, hier mussten wir zunächst wissen, wie viele Elemente darin enthalten sind. Dann mussten wir eine Variable erstellen, durch die wir iterieren konnten. Dann mussten wir es jedes Mal um eins erhöhen. Und wir mussten auch den Namen unseres Arrays eingeben , der von einem Index gehalten wird, der durch unsere Iteratorvariable gefärbt ist. Während wir hier gerade für jede Ganzzahl in unserem Array gesagt haben, werden wir diesen Wert auf jedes Element setzen und bam ausgedruckt. Also persönlich, wenn ich es wäre, würde ich etwas tun. Ich denke, das sieht viel sauberer aus. In diesem Fall können Sie jetzt alles tun, womit Sie sich wohler fühlen. Aber ich persönlich denke, das sieht viel sauberer aus und es ist auch sehr klar , dass wir diese Schleife nur für so viele Elemente ausführen wollen , die sich in unserem Array befinden, im Vergleich zu diesem, wo Assad gerade war Ich lese das hier. Es steht nur, dass ich weniger als zehn bin. Und dann können wir annehmen, dass wir so viele Variablen in unserem Array haben. Dies ist sehr klar, dass dies für so viele Elemente ausgeführt werden würde , wie es in unserem Array gibt. Und das wäre immer noch klar, ob dies hier eine Warteschlange oder ein Stapel oder ein Vektor usw. war . Lassen Sie uns jetzt weitermachen und noch eine Sache damit machen. Lassen Sie uns also unsere zufällige Aussage hier zurücksetzen. Also sagen wir gleich Randmodul a 100 plus eins. Dann erstellen wir hier unten eine Variable, von wir sagen, der höchste Wert. Wir können also die höchste Zahl sagen. Das entspricht also 0. Dann können wir innerhalb unserer Foreach-Schleife einfach so etwas sagen. X ist kleiner als die höchste Zahl. Dann wollen wir die höchste Zahl gleich setzen. Einfach so. Ich erinnere mich, dass das nicht x sein muss. Wir können es nennen, wie wir es wollen. Wenn ich das zum Beispiel klarstellen wollte, könnten sie „ Element umbenennen“ sagen, oder? Wenn also das aktuelle Element in unserem Array kleiner als die höchste Zahl ist, dann entspricht die höchste Zahl dem aktuellen Element. Und jetzt hier unten, direkt nach unserer Foreach-Schleife, können wir einfach so etwas wie die höchste Zahl sagen. Und davor lasst uns weitermachen und etwas Text eintragen. Sagen wir das Nummernfeld. Wir werden gleich dort einen weiteren Insertionsoperator einsetzen. Und wenn ich codiere und das, und der Grund, der 0 ausgegeben hat, weil das tatsächlich sagen muss, ob das aktuelle Element größer ist als die höchste Zahl, die wir setzen wollen, höchste Zahl gleich das aktuelle Element. Und los geht's. Unsere höchste Zahl war vielleicht sechs. Also sagten wir die höchste Zahl von 96. Es gibt also nur einen weiteren Anwendungsfall für eine, für jede Schleife. Jetzt werden wir in diesem Kurs erneut für jeden Loops verwenden. Wenn Sie es also nicht vollständig verstehen , machen Sie sich darüber keine Sorgen. Wie gesagt, wir werden sie in Zukunft wieder verwenden. Und lassen Sie uns weitermachen und schnell eine angemessene Zusammenfassung zusammenfassen. Und im Grunde genommen, wie man diese Zeile hier interpretiert. Sie werden also sagen, für alle Kleinbuchstaben und dann für m Klammern habe ich den Datentyp der Elemente des Arrays. Wir haben also ein int-Array, also sagten wir int, dann erstellen Sie einen Variablennamen, und das kann alles sein, was Sie wollen. Also haben wir gerade aktuelles Element gesagt, dann wirst du einen Doppelpunkt haben. Und dann endlich Ihr Containername, gefolgt von engen Klammern und geschweiften Klammern. Es tut mir leid. Im Grunde sagen wir für jedes Element in unserem Array, dass wir diese Variable erstellen werden. Und diese Variable wird jedem der Werte in unserem Array gleich gesetzt , während sie durchlaufen wird. Und es wird bei Index 0 beginnen und bis zum Ende reichen. Nun, im letzten Video, wenn Sie sich erinnern, habe ich gesagt, dass durch die für jede Schleife tatsächlich das Array für seinen Betrieb kopiert wird. Also, was habe ich damit gemeint? Nun, lass es mich dir zeigen. Also, wenn ich diesen Code hier für einen Moment entferne, wenn wir sagen würden, dass das aktuelle Element gleich zehn ist, und dann hier oben einen Iterator erstellen. Wenn du also sagst, ich bin gleich 0, und dann sagen wir hier unten I plus. Und dann drucken Sie jedes Mal unser Array bei index i aus. Also lass uns danach eine neue Zeile erstellen. Und dann werden wir weitermachen und diese Zeile hier unten löschen und unseren Code ausführen. Sie können sehen, dass sich alles in unserem Array nicht geändert hat. Und das liegt daran, dass dieses aktuelle Element hier nur die Kopie der Werte in unserem Array ist . Und wenn wir stattdessen das aktuelle Element hier ausdrucken würden , können Sie sehen , dass wir es auf zehn setzen und ausdrucken können. Aber als wir es hatten, wie hat er es vor einer Minute gemacht. Wenn wir unseren Code hier ausführen, können Sie sehen, dass er nicht für jeden von ihnen zehn ausdruckt. Und das liegt daran, dass das aktuelle Element hier nur eine Variable ist , der wir wollen, dass es gleich ist. Jedes Element in unserem Array. Während ich das erste Mal durchlief, war es gleich meinem Array-Index 0, dann meinem Array-Index eins. Ändern des aktuellen Elements ändert jedoch nicht den Wert in unserem Array. Diese Variable hier ist also nur eine Kopie von jedem der ganzzahligen Elemente in unserem Array und hat keine Auswirkung auf die Elemente in unserem Array. Da hast du es also. Hoffentlich ergab das Sinn. Wenn nicht, werden wir während des gesamten Kurses mehr mit den einzelnen Loops arbeiten . Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 53. 52: In diesem Video werden wir über das Auto-Keywort sprechen . Das ist also im Grunde genommen, dass das Schlüsselwort auto im Wesentlichen nur ein Platzhalter für einen Typ ist, aber es ist kein Typ selbst, was bedeutet, dass Sie keinen anderen Datentyp in ihn umwandeln können. Wenn Sie jetzt das Schlüsselwort auto verwenden, muss die Variable initialisiert werden. Und ich zeige dir gleich hier, was ich damit meine. Also, wenn ich hier unten eine Variable erstellt habe und anstatt den Datentyp direkt einzugeben, habe ich mich einfach darauf gesetzt. Und dann würde ich so einen Fehler bekommen, weil Auto-Variablen initialisiert werden müssen. Lassen Sie mich nun kurz auf einige nützliche Dinge zur Verwendung des Auto-Schlüsselworts eingehen. Und dann gehen wir auf einige Beispiele ein und sehen, wo und wann es nützlich sein kann. Jetzt persönlich bin ich kein großer Benutzer. Das Auto-Schlüsselwort. Und wenn Sie aus einer anderen Programmiersprache kommen, sagen Sie etwas wie C-Sharp, und es ist im Grunde so etwas wie das Schlüsselwort var oder so ähnlich. Ein Grund, warum Sie das Schlüsselwort auto verwenden möchten , ist seine Robustheit. Wenn der Ausdruck type hat sich geändert, einschließlich wenn sich ein Funktionsrückgabetyp geändert hat, funktioniert er weiterhin. Und ich weiß, dass wir nicht wirklich viel über Funktionen gesprochen haben, obwohl wir früher eine Handvoll davon bekommen haben. Aber was wir damit meinen, werdet ihr in einem kommenden Video sehen. Dann ist da noch die Vorstellung. Und damit meine ich , dass Sie garantiert sind, dass es keine Konvertierung gibt und Sie den richtigen Typ erhalten , den Sie benötigen. Und das zeige ich dir gleich hier. Als nächstes haben wir die Benutzerfreundlichkeit. Und das kommt ins Spiel, dass Sie sich keine Gedanken über Typnamen, Rechtschreibschwierigkeiten und Tippfehler machen müssen. Wenn Sie sich also mit längeren Typnamen beschäftigen und wir im nächsten Video tatsächlich auf einen davon eingehen werden , wenn wir über Karten sprechen, das Schöne an dem Auto-Schlüsselwort, dass es viel kürzer ist und Sie weniger anfällig für Fehler. Als nächstes gibt es die Effizienz oder einfach das Tippen, weil es ein so kurzes Wort ist, dass das Schneiden in diesem Sinne effizienter sein kann. Lassen Sie uns nun einen Blick darauf werfen wie Sie das Auto-Keyword verwenden. Und wie gesagt, es ist im Wesentlichen nur ein Platzhalter für einen Typ, obwohl es selbst kein Typ ist. Und wie es funktioniert, ist, dass unser Programm hier automatisch herausfindet, welchen Typ wir brauchen, wenn Sie Auto schreiben unser Programm hier automatisch herausfindet . Schauen wir uns das an , indem wir einige verschiedene Variablen erstellen. Wenn ich also eine Ganzzahl erstellen wollte, könnte ich einfach sagen, dass die automatische Nummer gleich fünf ist. Und wenn ich mit der Maus darüber fahre, können Sie sehen, dass ich eine Integer-Variable erstellt habe. Und wenn wir daraus einen Float wie diesen gemacht haben, können Sie sehen, dass es jetzt ein Float ist. Und wenn wir es in so etwas geschafft haben, können Sie sehen, dass daraus automatisch ein Double wird. Wie gesagt, Sie können dieses Schlüsselwort im Grunde einfach verwenden, damit es automatisch herausfindet, welchen Typ Sie benötigen. Lassen Sie mich weitermachen und das schnell wieder in eine Tinte ändern. Und wir rufen das eigentlich direkt an. Und hier unten sagen wir so etwas wie Auto-Nummer, Kaffee ist gleich Zahl, einfach so. Und jetzt wird dieser Wert automatisch hierher kopiert, genau wie wir es in der Vergangenheit gesehen haben. Und Sie können sehen, dass diese automatisch eine ganzzahlige Variable sind. Und dies ist ein kleines und sehr einfaches Beispiel dafür wann sich dies als nützlich erweisen könnte. Denn jetzt, wenn wir weitermachen und den Datentyp der Zahl in Float ändern und so etwas tun würden. Sie können sehen, dass dies automatisch zu einem Float wird. Wir mussten uns hier unten nicht mal mit unserem Code herumschlagen. Und dann nehmen wir an, wir wollten etwas Code zum Ausdrucken eines Arrays haben , was wir in der Vergangenheit gemacht haben. Lassen Sie mich also weitermachen und das schnell entfernen. Genau hier sagen wir in meinem Array. Und dann sagen eckige Klammern etwa fünf. Einfach so, um ein Integer-Array aus fünf Variablen zu erstellen . Dann gehen wir tatsächlich weiter und gehen zu jedem dieser K-Werte über. Also lass uns so etwas sagen. Ordnung, jetzt haben alle fünf einen Anfangswert. Und denken Sie daran, wenn Sie es wollen, können Sie diese Nummer hier einfach entfernen, nein, automatisch herausfinden, dass wir fünf Werte in der Liste haben wollen. Und dann hier unten können wir alles in unserem Array mit einer für jede Schleife ausdrucken , was automatisch funktioniert unabhängig davon, wie viele Elemente sich in unserem Array befinden. Wir könnten so etwas wie vier x Doppelpunkte in meinem Array sagen. Dann könnten wir einfach C oder X in der Zeile sagen. Und nachdem wir Code ausgeführt haben, wie wir aus der Vergangenheit wissen, wird dies weitergehen und alles in der Kunst ausdrucken , oder? Nun, obwohl genau hier in einem so kleinen Stück Code, ist es sehr offensichtlich, dass wir mit einem Integer-Array arbeiten. Etwas, das wir tun könnten, ist einfach Auto zu sagen, und jetzt müssen wir uns nicht einmal mehr darum kümmern. Dies wird automatisch wissen, welcher Datentyp sich in unserem Array befindet. Wir müssen nicht darüber nachdenken. Wenn wir hier einen größeren Code hätten, müssen wir nicht zurückgehen und überprüfen, welchen Datentyp wir verwenden. Das wissen wir bereits hier. Wir wollen den Datentyp unseres Containers angeben. Wie auch immer, oft wird es einfacher sein, nur Auto zu sagen, besonders wenn wir mit einem komplizierteren Datentyp arbeiten , den Sie im nächsten Video sehen werden. Wenn ich so etwas mache, ist dies wahrscheinlich einer meiner beliebtesten Anwendungsfälle für dieses Keyword. Ich kann einfach Auto sagen, ich muss nicht darüber nachdenken. Ich weiß sowieso, dass ich den Datentyp davon haben will. Und wenn Sie sich von hier oben erinnern, wissen wir, dass es keine Art von Konvertierung geben wird. Es wird nur den genauen Datentyp erhalten, den wir brauchen. Und das wollten wir sowieso hier platzieren. Und sagen wir später, je nachdem, wofür unser Array hier gedacht war, dachten wir: Weißt du was, ich werde keine ganzen Zahlen mehr für das verwenden können , was ich mache. Ich muss Floats benutzen. Nun, wir könnten diese einfach ändern, um all dies zu einem Float-Wert wie diesem zu machen. Und Sie können alle Zahlen eingeben, die Sie nicht hier waren, wird keinen wirklichen Unterschied machen. Und hey, sieh dir das an. Ich muss mich hier unten nicht mal mit meinem Code anlegen. Das ist also fantastisch. Abgesehen davon gibt es einige Mängel bei der Verwendung von Auto, und ich möchte Sie nur darauf aufmerksam machen. Außerdem benutze ich, wie gesagt, Auto persönlich nicht viel, aber ich weiß, dass es viele Leute gibt, die das tun. Und wenn Sie den Code einer anderen Person lesen, besteht oft eine gute Chance, dass diese Person das Schlüsselwort auto verwendet. Und ich habe sogar gesehen, dass einige Leute einfach Auto benutzen und dort nicht einmal tippen, überhaupt tippen. Die sagen einfach Auto und verwenden das für so ziemlich alles. Nehmen wir persönlich an, wir erstellen eine Variable wie diese und x ist gleich fünf. Jetzt weiß ich, dass das eine Ganzzahl ist. merke ich. Ich werfe einen sehr kurzen Blick darauf. Ich muss nicht einmal darüber nachdenken, aber wenn ich hier tippe, nun ja, ich kann wahrscheinlich daraus schließen, dass dies eine Ganzzahl ist, indem ich diese Umfragenummer hier überprüfe. Oder wenn ich so etwas hätte, wo wir auto sagen Das ist x, nun, ich weiß nicht einmal, was b ist, es sei denn, ich gehe hier rüber und fahre mit der Maus darüber nur um herauszufinden, dass dies eine Ganzzahl ist denn hier ist auch eine Ganzzahl. Und ich weiß, dass ich am Anfang gesagt habe, nun, hey, wenn wir das von einem int in einen Float ändern würden, dann müssen wir diesen Stamm hier nicht ändern. Was wäre jedoch, wenn wir eine Methode hätten, die den ursprünglichen Typ erfordert? Jetzt müssen wir durchgehen und herausfinden , welche Methoden dadurch alle durcheinander gebracht wurden. Und denken Sie daran, was der neue Datentyp ist, und so weiter. Und es kann ziemlich chaotisch werden. Also persönlich würde ich in den meisten Fällen lieber nur den Typ sehen , aber experimentiere gerne selbst damit und sehe, was du am liebsten machst. Wie gesagt, für Fälle wie diesen, insbesondere bei der Arbeit mit komplizierteren Datentypen bei denen ich weiß, dass ich nur den genauen Datentyp meines Containers genau hier haben möchte. Nun, ich könnte genauso gut einfach Auto sagen, es ist viel einfacher. Ich muss nicht wirklich darüber nachdenken. Und wenn sich aus irgendeinem Grund mein Array-Typ hier oben geändert hat und ich diese Werte sowieso nur ausdrucke weil ich hier keine spezifischen Methoden habe. Nun, ich kann einfach Auto sagen. Ich muss nicht drüber nachdenken. Ich muss mir keine Sorgen machen, das später zu ändern. Das wird sowieso einfach funktionieren. Das war's für dieses Video. Ich wollte Sie nur darauf aufmerksam machen, was das Auto-Keyword ist und was ist das für eine Abzweigung? Weil ich mit Sicherheit weiß, dass Sie das Auto-Keyword sehen werden, wenn Sie mit dem Programmieren beginnen. Wenn Sie aus einer anderen Programmiersprache kommen, besteht eine gute Chance, dass Sie das Schlüsselwort var gesehen haben und wir fragen uns, ob C Plus etwas Ähnliches hatte. Also los geht's. Hoffentlich haben Sie ein gutes Verständnis dafür, wie das Schlüsselwort auto verwendet wird und wofür es im Grunde genommen ist Sie werfen es einfach hier in unser Programm, um herauszufinden, welchen Datentyp wir selbst benötigen. Und du willst es nicht explizit sagen müssen. Aber wenn Sie möchten, dass Ihr Datentyp explizit ausgeschrieben wird, dann müssen Sie ihn einfach selbst eingeben. Jedenfalls. Danke fürs Zuschauen und wir sehen uns im nächsten. 54. 53: In diesem Video werden wir über einen anderen Container namens Maps sprechen . Jetzt sind Maps und C plus plus eine Art Container , in dem Elemente auf nicht zugeordnete Weise gespeichert werden, in der Sie sowohl einen Schlüssel als auch einen zugeordneten Wert haben . Jetzt wird der Schlüsselwert im Allgemeinen verwendet , um die Elemente in Ihrem Container zu sortieren und eindeutig zu identifizieren , während der zugeordnete Wert den mit diesem Schlüssel verknüpften Inhalt speichert . Anstatt Sie nun mit einer Menge Karten zu verwechseln, lassen Sie uns einfach selbst eine erstellen. Und bevor wir das tun, sollten Sie weitermachen und diese Header-Datei als Map hinzufügen . Also lasst uns weitermachen und loslegen. Jetzt ist die Syntax für eine Map wie folgt. Zuerst sagen Sie Map, alles Kleinbuchstaben, das Kleiner-als-Symbol, gefolgt von einem Datentyp , der für Ihren Schlüssel bestimmt ist. Also einfach so, dann haben Sie ein Komma, gefolgt von Ihrem Kartendatentyp. Also wenn das Größer-als-Symbol, und danach haben Sie den Namen der Karte, gefolgt von einem Semikolon. Wie Sie sehen können, ähnelt es dem Erstellen eines Vektors, einer Warteschlange oder eines Stacks. Anstatt jedoch nur einen Datentyp zu haben, müssen wir uns jetzt daran erinnern, dass Ihr Schlüsseldatentyp in der Regel darin besteht, zu sortieren und eindeutig zu identifizieren, was auch immer Ihr zugeordneter Datentyp in diesen Datentypen sein kann übrigens anders. Sie müssen es also nicht lagern, es endet nur. Sie könnten es speichern und eine Zeichenfolge oder im Wesentlichen alles, was Sie wollen, dort. Also lasst uns weitermachen und eine Map erstellen. Und wir werden weitermachen und das in unserem Fall auf das Telefonbuch stützen , nur weil jeder weiß, was ein Telefonbuch ist. Es wird also hoffentlich einfacher sein, so zu verstehen. Also hier unten sagen wir Karte und dann das Kleiner-als-Zeichen. Und dann identifizieren wir jeden einzelnen im Telefonbuch eindeutig anhand des Namens. Also lass uns weitermachen und einfach String sagen, genau wie dieses Komma. Und dann wird die Nummer aller als ganze Zahl gespeichert. Also sagen wir int. Wir rufen dieses Telefonbuch an. Einfach so. Also genau hier haben wir unsere leere Karte. Und dann hier unten werden wir weitermachen und einige Elemente zu unserer Map hinzufügen. Ordnung, also lasst uns weitermachen und einige Elemente zu unserer Map hinzufügen. Und um das zu tun, sagen wir einfach den Namen unseres Karten-Telefonbuchs. Dann verwenden wir den Mitglieds-Zugriffsmodifikator. Also sagen wir Punkt dort, füge übrigens alle Kleinbuchstaben ein. Und dann werden wir den Typ jetzt in Klammern setzen, weil unsere Map zwei verschiedene Datentypen enthält wie es Does, die verbunden sind. Dies wird eigentlich als Zahler bezeichnet. Ein übergeordnetes Element und C plus plus sind also im Wesentlichen nur ein Container, der zwei Werte speichert. Und diese Werte können vom gleichen Datentyp sein oder auch nicht, genau hier drin sagen wir Telefonbuch-Punkteinfügung. Und danach sagen wir Haare, hier alles in Kleinbuchstaben. Und dann ein Kleiner-als-Symbol , gefolgt von den gleichen Datentypen unserer Karte. Wenn Sie möchten, können Sie diese einfach kopieren und einfügen. Aber wir werden das rausnehmen und versuchen hier zu üben, einfach so. Und dann müssen wir in Klammern die Werte eingeben, die wir in die Zeichenkette und die Zeichenkette einfügen möchten . Geben wir hier einfach einen Namen ein, so etwas wie Jack-Komma, und dann den ganzzahligen Wert. Und wir können einfach jede zehnstellige Nummer eingeben, die wir für ihre Telefonnummer darstellen möchten . Dann setzen wir einfach ein Semikolon am Ende und fügen noch ein paar Zahlen hinzu. Und anstatt das alles noch einmal zu tippen, kopiere ich es einfach und füge es ein paar Mal ein. Dann gehen wir jeden dieser acht verschiedenen Schlüsselnamen durch . Und Sie möchten, dass dieser erste Wert für jeden einzigartig ist. Sie möchten also nicht den Namen Jack und mehrere Allele angeben. Und wenn Sie tatsächlich ein Telefonbuch erstellen, möchten Sie einen Nachnamen haben, z. B. aber da wir nur mit etwas Kleinem wie hier arbeiten, verstehen Sie alle den Punkt. Also sagen wir Jack, John, Pam und so etwas. Und ich gebe jeder dieser acht verschiedene Zahlen. Und zögern Sie nicht, auf die Zahlen zu werfen, die Sie wollen, anstatt das, was ich hier habe, genau kopieren zu müssen, da es für unser Beispiel keinen Unterschied machen wird . Was ist, wenn wir weitermachen und die Karte ausdrucken wollen? Nun, wir könnten das mit einem für jede Schleife tun. Wenn wir also sagen wollen und dann können wir Paar sagen, gefolgt vom Kleiner-als-Symbol und dann Belastung. Und das Größer-als-Symbol. Und danach sagen wir Person, Raum, Doppelpunkt, unser Kartenname, da war ein Telefonbuch und dann eine lockige Klammer zum Öffnen und Schließen, so. Und dann können wir jeden einzelnen ausdrucken und ich zeige Ihnen, wie wir das machen. Also sagen wir CO, gefolgt von einer Person, denn das ist die Variable, die wir verwenden um auf jede dieser Variablen zuzugreifen. Wir sagen Diät. Und dann merke, dass es eine erste und eine Sekunde gibt. Der erste Wert ist unsere Zeichenfolge, also wird das ihr Name sein. Und dann wäre der zweite der ganzzahlige Wert oder in diesem Fall die Zahl aller. Also sagen wir zuerst Person Punkt, und danach setzen wir ein Feld wie dieses ein. Und dann sagen wir Person in dieser Sekunde, gefolgt von der N-Zeile, einfach so. Und wenn wir unseren Code hier ausführen, können Sie sehen, dass alle unsere Zahlen tatsächlich durcheinander sind. Warum ist das so? Nun, wie ich bereits erwähnt habe, kann eine Ganzzahl nur einen bestimmten Bereich halten und dann irgendwann einen Wraparound und weiter gehen. Wir haben dort in einem früheren Video darüber gesprochen. Wie können wir das beheben? Nun, dies ist ein gutes Beispiel dafür, wann Sie nach einem anderen Datentyp suchen möchten , der Ihren Anforderungen entspricht, und welche Fehler auftreten können wenn Ihr Datentyp zu kurz dafür ist, welchen Wert Sie haben versuche, in diesem Fall hier, meinen höchsten Wert zu halten , den ich versuche, seinen über 8 Milliarden zu halten. Und wenn ich mit der Maus darüber fahre, können Sie sehen, dass es sich bei diesem Wert um eine Lunge handelt. Lunge. Und weil wir niemandem einen negativen Telefonnummernwert geben, können wir diese Variable genauso gut vorzeichenlos machen. Um das hier zu beheben, sagen wir unsigniert, lang, lang, einfach so. Und wir werden das für jeden von ihnen kopieren und einfügen . Stellen Sie daher sicher, dass Sie dies für jedes Element , das wir hinzugefügt haben, sowie ein R für jede Schleife kopieren dies für jedes Element , das wir hinzugefügt haben, . Deshalb haben wir jetzt eine Karte für den ganzen Tag und eine vorzeichenlose Long, Long erstellt den ganzen Tag und eine vorzeichenlose Long, , die eine sehr große positive ganze Zahl aufnehmen kann. Und wir nennen diese Karte Telefonbuch. Dann fügten wir mehrere Elemente ein, indem den Namen unserer Map gefolgt von dieser Einfügemethode sagten . Und dann war unser Datentyp hier ein Paar, das, wie gesagt, es sind zwei verschiedene Werttypen, oder es kann zwei verschiedene Werttypen enthalten. Ich sollte sagen, da wir beide hätten erfinden können, eine Zeichenkette oder ein Int oder was auch immer wir wollen es dort. Aber in diesem Fall setzen wir eine Zeichenfolge und eine unsignierte Long, Long, um ein Telefonbuch darzustellen. Dann hier unten haben wir gerade eine einfache foreach-Schleife erstellt , in der wir für jedes Paar einer Schnur und unsigniert lang, lang in unserem Telefonbuch oder einem Container, hier eine Karte, gesagt haben. In diesem Fall möchten wir eine Variable namens person erstellen und sie jedem Element beim Durchlaufen gleich setzen . Wir können also zuerst den Personenpunkt ausdrucken, was unser erster Wert hier und unser Paar sein wird, dann werfen wir ein Leerzeichen hinein und drucken dann auch die zweite Person aus, was hier unser zweiter Wert ist, gefolgt von der Erstellung einer neuen Zeile. Und wenn wir unseren Code erneut ausführen, können Sie sehen, dass dies jetzt einwandfrei funktioniert. Und unsere Zahlen haben wir hier eingegeben, weil ein unsignierter Long, Long einen so großen Wert halten kann. Beachten Sie nun, dass dieser Datentyp viel Speicherplatz beansprucht, und ehrlich gesagt sieht er ein bisschen hässlich aus. Nun, es gibt eine einfache Möglichkeit , dies mit dem Auto-Keyword zu beheben , über das wir gerade im letzten Video gesprochen haben. Wir können einfach Auto sagen, und jetzt müssen wir nicht mehr all das zusätzliche Zeug reinlegen. Und wenn wir unseren Code ausführen, können Sie sehen, dass er ohne Probleme einwandfrei läuft. Als Auto-Keyword wurde automatisch der genaue Datentyp ermittelt, den wir brauchten. Also wie toll ist das? Und es sieht meiner Meinung nach viel sauberer aus. Sie können es jedoch so oder so tun. Ihnen jedoch etwas zu zeigen, können wir hier kein Auto aufstellen, da dies nicht funktioniert. Hier ist ein Beispiel dafür, wann Sie das Schlüsselwort auto nicht verwenden können. Und stattdessen müssen wir den Wert direkt setzen . Da hast du es also. Es gibt eine grundlegende Möglichkeit, eine Map zu erstellen, Elemente hinzuzufügen und für jede Schleife mit einer Map eine zu verwenden , um die darin enthaltenen Werte auszudrucken. Bevor wir dieses Video abschließen, zeige ich Ihnen nur ein paar zusätzliche Methoden, die Sie jedoch mit Ihrem Kartencontainer verwenden können. Aber wie immer gibt es noch eine Menge mehr. diese also gerne nachschlagen, wenn Sie sich entscheiden, eine Map in einem Ihrer Programme zu verwenden. Das erste, was wir uns ansehen werden, ist, wie man ein Element von unserer Map entfernt. Aber bevor wir das tun, füge ich hier nur einen zusätzlichen Kommentar hinzu. Stell die Karte raus. Und dann werden wir genau hier die Betragsspalte entfernen. Also ganz schnell, wenn Sie sich erinnern, dass ich zu Beginn des Videos gesagt habe, dass eine Karte wie eine echte Karte angelegt ist. Wir werden Schlüsselwerte und dann zugeordnete Werte in diesem Schlüssel haben , um nicht nur die Elemente in Ihrem Container zu sortieren, sondern auch, um Elemente in Ihrem Container zu finden die Elemente in Ihrem Container zu sortieren, sondern auch, . Also genau hier unten, wenn wir ein Element in unserem Container entfernen wollen, müssen wir einfach diesen Schlüssel des Elements kennen. Und lassen Sie mich Ihnen zeigen, wie das gemacht wird. Also genau hier sagen wir , dass Telefonbuch der Name unserer Karte ist, Punkt löschen. Und dann setzen wir einfach den Schlüsselwert des Elements , das wir entfernen möchten, in Klammern setzen wir einfach den Schlüsselwert des Elements , das . Nehmen wir an, John ist aus irgendeinem Grund aus der Stadt gezogen und wir brauchen seine Nummer nicht mehr in unserem Telefonbuch. Nun, wir können John einfach zwischen Anführungszeichen setzen , weil wir mit einer Zeichenkette arbeiten und am Ende ein Semikolon setzen. Wenn wir jetzt unseren Code ausführen, wird John nicht mehr Teil unseres Telefonbuchs sein. Genau dort, so entfernen Sie Elemente aus einem. Und lassen Sie mich Ihnen auch etwas anderes über diese Methode zeigen . Wenn wir also weitermachen und diese Zeile hier kopieren , wo wir John und/oder Telefonbuch eingefügt und so eingefügt haben und diesem eine andere Farbe geben . So. Und führe unseren Code aus. Sie können feststellen , dass John nicht existiert, und das liegt daran, dass dadurch tatsächlich jedes Element mit diesem Schlüssel entfernt wird . Es gibt ein weiteres Beispiel dafür warum Sie sicherstellen möchten, dass jedes Element in Ihrem Kartencontainer einen anderen Schlüsselwert hat. Schauen wir uns nun eine letzte Methode an , die wir hier mit Karten verwenden können. Dies ist nur der letzte, den ich Ihnen zeigen werde. Denken Sie daran, dass es noch viel mehr gibt, wenn Sie interessiert sind. Mit diesem hier können wir also die Telefonnummer der Person ausdrucken , die wir suchen. Ein weiteres gutes Beispiel dafür , warum Sie jedem einen bestimmten Schlüssel geben möchten . Und ich werde weitermachen und diesen zusätzlichen John entfernen , den wir hier in unser Telefonbuch aufgenommen haben. Also hier unten werden wir „ Element basierend auf“ sagen. Dann unten, alles was wir als CEO-Telefonbuch tun müssen. Und dann in Klammern setzen Sie ihren Schlüsselwert hier in Anführungszeichen, weil wir mit Strings für unseren Schlüsselwert arbeiten Ich kann sagen: Hey, lass uns die Tams-Nummer bekommen, einfach so. Und wir werden Pams Nummer ausdrucken. Und ich werde weitermachen und unsere Foreach-Schleife kommentieren , nur damit sie keinen Platz beansprucht, wenn wir unser Programm ausführen. Und wenn ich unseren Code ausführe, hey, los geht's. Da ist die Zuhälternummer. Also los geht's. Hoffentlich haben Sie jetzt ein grundlegendes Verständnis der Funktionsweise von Kartencontainern in C plus und ein grundlegendes Verständnis ihrer Funktionalität. Sollten Sie es in einem zukünftigen Programm von Ihnen verwenden wollen? Wie auch immer, ich hoffe dir hat das Video gefallen. Danke fürs Zuschauen und wir sehen uns im nächsten. 55. Kapitel 10 (Foreach Loops): Iteratoren: In diesem Video gebe ich Ihnen eine sehr grundlegende oder sehr kurze Einführung in Iteratoren. Und ehrlich gesagt wollte ich das nicht einmal in C plus plus für Anfänger werfen , aber ich sehe es so oft, dass ich mich einfach entschieden habe, es einfach da reinzuwerfen. Ihr wisst also wenigstens, was es ist, wenn ihr darauf stößt. Das Beispiel, das ich geben werde, ist jedoch nicht wirklich der beste Anwendungsfall dafür. Aber wie gesagt, ich sehe es die ganze Zeit. Also möchte ich nur sicherstellen, dass ihr nicht völlig überrascht werdet , wenn ihr es sehr früh seht, wenn ihr damit beginnt, eure eigenen Programme zu erstellen und den Code anderer Leute als Referenz zu betrachten . Also lasst uns anfangen. Also zuerst, was ist ein Iterator? Ein Iterator ist ein Objekt, das verwendet wird, um über Elemente in einem Container zu iterieren. Wie auch immer, es gibt die Grundidee, was ein Iterator ist. Es ist wie gesagt, es ist nur eine Adjektivverwendung, um über Elemente in einem Container zu iterieren, was wir in der Vergangenheit getan haben. Aber jetzt werde ich Ihnen zeigen, wie das mit einem tatsächlichen Iterator-Objekt gemacht wird. Und ich zeige Ihnen auch, wie wir dasselbe mit einer für jede Schleife tun können , wie wir es in der Vergangenheit getan haben, nur damit Sie die Vergleiche zwischen ihnen sehen können. Und wie gesagt, das ist wirklich nicht der beste Anwendungsfall dafür. Und normalerweise würde ich einfach eine For-Each-Schleife verwenden. Und du wirst gleich sehen, was ich hier meine. Also zuerst werden wir weitermachen und einen Vektor erstellen. Ich tippe so ein. Und dann rufen wir einfach diese Nummern und setzen sie auf Folgendes. Also in geschweiften Klammern hier, mach einfach weiter und füge eine beliebige Ansicht mit fünf Zahlen ein. Ich werde der Einfachheit halber nur 12345 sagen. Und wir haben uns angesehen, wie dies mit ein paar verschiedenen Methoden wiederholen können. Wenn Sie sich erinnern, haben wir das mit einer for-Schleife gemacht, und wir haben das mit einer für jede Schleife gemacht. Nun, um dies mit einem für jede Schleife zu tun, wenn Sie sich erinnern, sagen Sie einfach etwas wie Portnummer, Doppelpunktzahlen wie diese. Und dann wurde ein Eingabecode-Block solche Nummer ausgedruckt. Und das wird gut funktionieren. Dadurch wird alles in unserem Zahlenvektor ausgedruckt. Aber wie machen wir das mit einem Iterator? Nun, zuerst werden wir weitermachen und einen Iterator deklarieren. Dazu geben wir den Containertyp erneut ein, bei dem es sich um Containertyp erneut ein, bei dem einen Vektor vom Typ int handelt, gefolgt von zwei Doppelpunkten. Und dann sagen wir Iterator in Kleinbuchstaben wie folgt. Und danach brauchen wir einen Namen und eine gemeinsame Namenskonvention. sehr gebräuchlicher Name, wenn Sie löschen oder ein Iterator einfach IT sein wird. Und das allein ist eine Erklärung für unseren Iterator. Also werde ich das rausbringen und diese Iterator-Deklaration für unsere Nummern einfach so nennen . Und ich mache das nur als Referenz. Ihr müsst diesen Teil also nicht kopieren , wenn ihr nicht wollt. Und lasst mich hier für euch reinzoomen. Aber unten ist diese Emigration und Initialisierung dafür. Also iterierte Initialisierung, wie so. Wir können es in derselben Zeile deklarieren und initialisieren. Also sagen wir Iterator-Initialisierung in Deklaration für unseren Zahlenvektor Und was wir tun würden, um das zu tun, ist Containertyp, gefolgt von den beiden Colins Than Iterator, der Name noch einmal. Und dann würden wir dem nachgehen , wo unser Iterator beginnen soll. Im Wesentlichen würden wir das in diesem Fall tun , indem wir den Namen sagen. Wir sind Container mit Zahlen, gestorben. Schon wieder. Das ist die grundlegende Syntax, um einen Iterator zu deklarieren und zu initialisieren. Iterator-Syntax. Denken Sie daran, dass die Syntax im Grunde nur die Regel für etwas ist, im Wesentlichen wird es der Container sein. Und dann musst du es tun, Colin ist so. Ich werde Iterator sagen, gefolgt vom Namen des Iterators. Ich werde einfach hier wählen. Und wenn Sie es dann initialisieren möchten, sagen Sie gleich gefolgt vom tatsächlichen Containernamenpunkt. Und wenn Sie es dann auf den ersten Wert setzen möchten, können Sie zumindest sagen, dass das begonnen hat. Es gibt jedoch andere Methoden, sodass Sie es nicht beim allerersten Element im Container starten müssen . Wie dem auch sei, ich werde diesen auch kommentieren . Und wir beginnen einfach mit der Erklärung. Also hier unten sagen wir nur Vektor in Colins Iterator IT und müssen dort am Ende ein Semikolon setzen. Ordnung, also los geht's. Wir haben unseren Iterator deklariert. Lassen Sie uns nun weitermachen und eine For-Schleife erstellen. Nervenkitzel, unser Vektor hier oben. Und ich werde diesen Code einfach kopieren und hierher verschieben , damit wir hier für euch auf dem Bildschirm bleiben können. Und ich entferne das hier oben. Und ich könnte das kommentieren, nur damit das dort nicht auf der Konsole angezeigt wird. Und wir erstellen eine for-Schleife , um mit unserem Vektor zu arbeiten. Also sagen wir vier. Und dann initialisieren wir hier einfach unseren Iterator, den wir bereits erstellt haben. Ich werde sagen, dass IT gleich Zahlen Diät ist. Schon wieder. Wie gesagt, dies wird unseren Iterator auf den Anfangswert des R-Vektors setzen , der eins ist. Und danach werden wir für eine Erkrankung im Wesentlichen während der IT sagen, also beginnen Sie hier damit, die IT in Angriff zu nehmen. Unser Iterator zu sein ist nicht gleichbedeutend mit. Numbers und Real Quick und Iterator zeigen eigentlich nur auf die Stelle im Gedächtnis der Elemente in unserem Container, was vielleicht etwas verwirrend ist. Und darauf werden wir noch ein bisschen näher eingehen, wenn wir in Zukunft über Zeiger sprechen. Aber im Moment wissen Sie einfach, dass es im Grunde darauf hinweist, dass der Ort im Speicher nicht dasselbe ist wie unser eigentliches Element. Okay? Also im Grunde genommen wollen wir einen Iterator erstellen, der hier beim allerersten Wert beginnt. Und dann, während unser Iterator nicht gleich dem letzten Element ist oder nicht auf das letzte Element zeigt. Ich könnte sagen, wir wollen unseren Code ausführen. Danach können wir einfach IT plus plus den Namen eines Generators plus plus sagen . Und das wird gut funktionieren. Nun, dieses Ende der Methode hier ist nicht wirklich der letzte Wert in unserem Container. Es ist tatsächlich im Wesentlichen der Wert danach, wenn er so existieren würde, wie wir ihn betrachten könnten. Also im Grunde genommen, was wir nicht auf einen Wert hinweisen , der nicht existiert. Also wird es bei diesem beginnen. Los geht's, 2345. Und wenn es dann auf das imaginäre sechste Element zeigt , wäre es diesem Ziel gleich. Nun, dem ist es nicht gleich. Wir wollen unseren Code weiterführen. Hoffentlich macht das Sinn. Im Grunde genommen, wenn es hier kein imaginäres sechstes Element gäbe, ist es das, worauf sich das hier bezieht. Worauf wir hinweisen, alles, was sich in unserem Container befindet, und wir wollen Folgendes tun und es wiederholen. Dann werden wir geschweifte Klammern öffnen und schließen. Und dann werden wir hier drinnen einfach drucken, jetzt erstelle ich einen neuen. Beachten Sie, dass wir diesen Fehler erhalten haben und das liegt daran, dass wir tatsächlich ein Sternchen setzen müssen , bevor wir es hier sagen. Warum haben wir dieses Sternchen? Und wir werden tatsächlich etwas näher darauf eingehen , wenn wir über Zeiger sprechen. Aber denken Sie im Wesentlichen daran, wie ich gesagt habe, dass ein Iterator auf die Stelle im Speicher zeigt, an der sich dieses Element befindet. Nun, dieses Sternchen ermöglicht es uns, diesen Zeiger zu dereferenzieren. Anstatt uns den Standort und die Erinnerung zurückzugeben, erhalten wir den tatsächlichen Wert zurück. Hoffentlich ergab das Sinn. Wenn nicht, sprechen wir über mehr, wenn wir später im Kurs auf Hinweise eingehen. Aber wissen Sie vorerst, wir setzen das hier ein, damit wir den tatsächlichen Wert und nicht die Speicherplatzadresse erhalten . Wenn wir also unseren Code hier ausführen und wie Sie sehen können, drucken wir ihn dort 12345 in separaten Zeilen aus. Und wenn Sie sich fragen, wie ich hier auf der Konsole oder in Visual Studio herangezoomt habe, können Sie die Strg-Taste gedrückt halten und das Scrollrad zum Vergrößern und Verkleinern verwenden. Allerdings vergrößert und verkleinert das Konsolenfenster hier tatsächlich nur die Größe des Fensters als Ganzes, was meiner Meinung nach fortsetzt, dass Sie sich auf Umwegen befinden. Aber wie auch immer, wir haben 12345 in separaten Zeilen ausgedruckt. Nun, wie gesagt, in dem speziellen Fall würde ich das niemals tun. Und oft werden Sie sogar sehen, dass es geschrieben ist, wo sich die Deklaration und Initialisierung in derselben Zeile befinden. Also, wenn wir das hier kopieren und einfügen und den Namen nicht zweimal eingeben wollen. Also einfach so und entferne die hier. Das wird gut laufen. Und oft werden Sie es so sehen, wie bei der Deklaration des Iterators und seiner Initialisierung derselben exakten Zeile. So werde ich weitermachen und jetzt, wie gesagt, in diesem Fall würdest du das wahrscheinlich nie machen wollen, weil für jede Schleife, die wir hier haben, so viel besser funktioniert. Es sieht so viel sauberer aus. Aber wie ich am Anfang des Videos erwähnt habe, sehe ich das ständig. Also wollte ich nur sichergehen, dass ihr wisst, was hier passiert. Im Grunde erstellen wir in unserer for-Schleife einen Iterator, indem wir hier den Containertyp eingeben, gefolgt von zwei Doppelpunkten, und dann den Schlüsselwort-Iterator, dann den Namen ihres Iterators, was Sie oft als IT sehen werden. Sie können jedoch alles, was Sie wollen, gefolgt vom Zuweisungsoperator eingeben , um es zu initialisieren. Dann geben wir den eigentlichen Containernamen ein und geben ihm einen Startpunkt. Denn wie gesagt, ein Iterator zeigt auf die Stelle im Speicher, an der sich ein Element in einem Container befindet. Also sagen wir im Grunde: Hey, fange einfach mit dem allerersten Element an. Dann sagten wir, während unser Iterator im Wesentlichen nicht auf das Element nach dem letzten zeigt . Das ist also unser letztes Element. Wenn es auf ein imaginäres Sechs-Element zeigen würde , wird diese Zahl gekauft und wäre gleich. Darauf weisen wir nicht hin. Wir wollen weitermachen und wiederholt um eins erhöhen, was uns hier entlang unserer Elemente voranbringen wird. Dann wollen wir den tatsächlichen Wert , auf den unser Iterator zeigt , jedes Mal in einer neuen Zeile ausdrucken , auf den unser Iterator zeigt . Und wir haben mit for loops gearbeitet, so weiter. Sie sollten also die Grundlagen verstehen. Grundsätzlich können wir hier eine Variable deklarieren und initialisieren. Wir haben hier eine Bedingung und dann unsere Variablenaktualisierung , wo wir in diesem Fall unseren Iterator aktualisiert haben. Nun, obwohl dieses Beispiel kein gutes Beispiel ist und das eine sehr grundlegende Verwendung eines Iterators ist , da es viele andere Methoden gibt, die Sie damit verwenden können , um verschiedene Dinge zu tun. Es gibt tatsächliche Anwendungsfälle, in denen Sie einen Iterator verwenden möchten. Und das liegt daran, dass nicht jeder einzelne Container seine Daten kontinuierlich speichert , wo alles in Ordnung ist und Sie einfach eine grundlegende Vierschleife verwenden könnten. Und manchmal kann ein Iterator notwendig sein. Wenn Sie mit einem anderen Containertyp arbeiten, der ihn nicht in einer sequentiellen Reihenfolge in Werten speichert , wie dies bei einem Vektor oder einem Array der Fall ist. Ein Iterator kann etwas sein, das Sie verwenden und etwas genauer untersuchen müssen . Aber das ist ein grundlegender Überblick über einen, sowie ein grundlegendes Beispiel dafür, wie man einen erstellt und als Beispiel verwendet , was Sie möglicherweise häufig sehen wenn Sie anfangen, sich den Code anderer Leute anzusehen vor allem sowieso, das ist im Grunde alles für dieses Video. Ich möchte nur sichergehen, dass Sie wissen, was ein Iterator ist, und ein grundlegendes Verständnis dafür Verwendung eines Iterators aussehen könnte, damit Sie nicht völlig überrascht werden , wenn es Ihnen in den Weg kommt. Wie dem auch sei, danke fürs Zuschauen. Hoffe dir hat das Video gefallen und wie immer sehe ich dich im nächsten. 56. Kapitel 11 (Enums): Einführung in die Enums: In diesem Video werden wir über Enums sprechen. Und ich werde Ihnen in diesem Video nur eine kurze Einführung geben . Und dann werden wir in den nächsten drei Videos tatsächlich sie erstellen und mit ihnen arbeiten. Normalerweise lernen Sie beim Erlernen einer Programmiersprache ziemlich früh. Ich habe mich jedoch entschlossen, sie bis zu diesem Zeitpunkt aufzuhalten , weil ich es zum einen nicht wirklich notwendig hielt, euch zu früh in den Kurs zu werfen . Und ich fand sie irgendwie verwirrend, als ich das erste Mal Programmieren lernte. Also dachte ich, ich lasse euch ein grundlegendes Verständnis der Sprache vermitteln, bevor wir sie da reinwerfen. Aber du wirst sie sehr oft sehen. Sie sind sehr nützlich. Also lasst uns weitermachen und herausfinden , was eine Enum genau ist. Eine Enum, kurz für einen Aufzählungstyp wird tatsächlich unser erster benutzerdefinierter Datentyp sein. Und was ich damit meine, wirst du im nächsten Video sehen , wenn wir weitermachen und tatsächlich eines erstellen. Und was eine Enum ist, ist im Grunde ein Gruppensatz von Konstantenwerten , denen ein Name zugeordnet , den Sie in Ihrem Code verwenden können. Okay, der benutzerdefinierte Datentyp auch. Und was es ist, ist eine Gruppe von Konstanten mit einem integralen Wert. Okay? Das bedeutet also, dass es die ganzen Zahlen abruft, oder eine ganze Zahl, sollte ich sagen, mit einem damit verbundenen Namen. Und weil diesen Konstanten ein Name zugeordnet ist, wird Ihr Code viel lesbarer, was so ziemlich der Hauptanwendungsfall dafür ist. Und ein Beispiel dafür wirst du in einem der kommenden Videos hier sehen. Ich weiß, dass wir seit geraumer Zeit nicht mehr über Konstanten gesprochen haben. Ich werde dir auch hier eine kurze Auffrischung geben. Was ist eine Konstante? Nun, es ist nur eine Variable , die nicht geändert werden kann. Wenn Sie also daran denken, eine zu erstellen , sagen Sie Konstante und dann erstellen Sie einfach wie gewohnt eine Variable. Wir könnten also konstante Zahl sagen und sie auf fünf setzen. Etwas, worüber ich nicht gesprochen habe, als wir das letzte über Konstanten gesprochen haben, war, dass man beim Benennen einer Konstante oft Leute sieht und ihr einen Namen in Großbuchstaben wie diesen für einen Namen in Großbuchstaben wie diesen für ein spezielles Präfix gibt um zu signalisieren, dass dies eine Konstante ist. Also, wenn ich später in meinem Code versucht habe, zum Beispiel Zahlen zu sagen, und ich sehe, oh hey, es ist ein Großbuchstaben oder ich sehe ein bestimmtes Präfix. Ich weiß, dass dies eine konstante Variable ist. Ich wollte nicht, dass sich das jemals ändert, oder? Weil die Konstante nicht geändert werden kann. Und wenn er versucht, es zu ändern, erhalten Sie eine Fehlermeldung. Das ist also nur etwas , auf das man achten sollte. Oft werden Sie bestimmte Effekte oder Großbuchstaben im Namen nur als grundlegende Namenskonvention sehen . Also das, weißt du, hey, das ist eine konstante Variable, nicht nur meine normale Durchschnittsvariable , die ich ändern kann. Nun, jedenfalls, das ist es für dieses Video. Die Hauptsache, die Sie daraus nehmen sollen , ist, dass ein ENM ein benutzerdefinierter Datentyp ist und dass es sich um eine Gruppe von Konstanten mit einem integralen Wert Konstanten mit einem integralen Wert mit einem zugehörigen Namen handelt. Wenn ich nun mit einem damit verbundenen Namen sage, meine ich mit jedem konstanten Integralwert, nicht nur mit der Enum selbst. Und du wirst ein Beispiel dafür und eines der kommenden Videos sehen . Wie immer danke fürs Zuschauen, und wir sehen uns im nächsten. 57. Kapitel 11 (Enums): Erstellung eines Enums: Hallo zusammen. In diesem Video werden wir tatsächlich weitermachen und unser erstes erstellen. Jetzt gibt es zwei verschiedene Arten von Enums, die Sie erstellen können. Aber in diesem Video werden wir nur mit dem grundlegendsten Typ arbeiten. Und dann zeige ich Ihnen in einem zukünftigen Video den anderen Typ, den Sie erstellen können. Und es ist nicht wirklich viel komplizierter. Und wir werden die Unterschiede durchgehen und dann auch. Wie erstellen wir eine Enum? Die Syntax für ein enum and, oder einen Aufzählungstyp lautet wie folgt. Zuerst sagst du Ina, dann wirst du den Namen deines Einkommens angeben. Und dann haben Sie in geschweiften Klammern jeden Wert , den Sie mit Ihrem ENM verknüpfen möchten. Und hier geben Sie tatsächlich einen String-Namen ein und dann wird ihm eine Konstante zugeordnet sein. Jetzt ist das gleich 0, was beim Erstellen eines Anime nicht erforderlich ist. Ich habe das hier nur eingefügt , um Ihnen die Konstante zu zeigen , die mit diesen ersten Werten verbunden war. Und danach wird diesem eine Eins zugeordnet sein und dieser wird eine Zwei haben. Und ich werde einfach weiter steigen, um so viele Werte wie wir haben. Und ich zeige dir gleich, was ich damit meine. Wenn du da etwas verwirrt bist. Also hier unten höre ich zu, Steuern für sie wieder, aber ich habe auch den konstanten Wert berücksichtigt , der mit jedem verbunden ist. Und wir können sogar Variablen unserer enum erstellen, da es sich um einen benutzerdefinierten Typ handelt, indem einfach unseren EM-Namen, gefolgt von einem Namen unserer Variablen, sagen und ihn auf einen der Werte setzen , die wir haben verbunden mit unserer Enum. Denken Sie auch daran, wie ich sagte, eine Enum ist eine Gruppe konstanter integraler Werte. Jedem ist ein Name zugeordnet. Nun, wenn Sie sich erinnern, müssen Konstanten gleich zu Beginn einen Anfangswert erhalten . So können wir eine Enum erstellen und Werte später initialisieren. Wir müssen es sofort tun. Lassen Sie uns also einen Blick darauf werfen, wie Sie selbst eines erstellen können. Also hier unten werden wir sagen, und dann nennen wir das zum Beispiel einfach. Und oft sehen Sie möglicherweise, dass benutzerdefinierte Typen mit einem Großbuchstaben beginnen. Also machen wir weiter und machen das auch hier für unsere Benennung. Und dann in geschweiften Klammern. Und denken Sie daran, wenn ich Sie über verschiedene Namenskonventionen informiere, sollten Sie einfach alles verwenden, was das Unternehmen oder was auch immer die Mehrheit der Leute, mit denen Sie zusammenarbeiten, verwendet. Wenn Sie nur alleine arbeiten, Sie den Dingen einfach Ihre eigene Note geben. Aber wie auch immer, also schreiben wir jedem von ihnen Anerkennung , indem wir Ina sagen, danke, ihm einen Namen zu geben. Und dann werden wir in geschweiften Klammern einige Werte eingeben , die mit unserer Aufzählung verbunden sind. Anstatt tatsächliche Zahlen einzugeben, geben wir in unserem Fall einfach Obstnamen ein. Wir könnten also etwas wie Apfel, Banane, Komma Orange sagen, einfach so. Und los geht's. Wir haben jetzt eine Enum erstellt die mit drei verschiedenen Werten aufgerufen wurde. Und wenn Sie sich erinnern, habe ich gesagt , dass jedem tatsächlich ein konstanter Wert zugeordnet ist , der standardmäßig eine Ganzzahl ist. Wenn ich also hier mit der Maus darüber fahre, können Sie sehen, dass Apple mit der Nummer 0 verknüpft ist, Banane mit Eins, Orange usw. Und das wird so weitergehen. Und danach Lass uns gehen. war noch keine andere und nenne das Trauben und L1 werden automatisch drei zugewiesen. Sie können diesen auch Ihren eigenen Wert geben. Ich könnte also sagen, dass Apple zum Beispiel gleich fünf sein wird, dann zählt es von dort aus nur noch hoch , wenn ich keines der anderen ändere. Also alles, was keinen eigenen definierten Wert wird gegenüber dem letzten benutzerdefinierten Wert nur um eins steigen. Apple wird jetzt fünf sein, Banane, Orange, Sieben, Trauben, acht. Und ich könnte sogar sagen, Banane wird jetzt zehn sein. Und dann wird es einfach von dort hochklettern , wobei Orange 11 ist. Und jemand. Eine Sache, die Sie beachten sollten , ist, dass, wenn ich Banane gleich vier sagen , weil die Orange immer noch gleich fünf ist und es dort keine Probleme geben wird würde , weil die Orange immer noch gleich fünf ist und es dort keine Probleme geben wird. Sie können dieselben Nummern haben, aber ich möchte, dass du es bist. Okay, Sie können also jedes Jahr nach Wert gehen und jede, die keinen Wert hat, wir fangen einfach an, ab dem letzten benutzerdefinierten Wert hochzuzählen . Denken Sie daran, dass Arrays und andere Container alle bei 0 beginnen. Ordnung, das ist also der grundlegende Weg, um eine Enum zu erstellen. Und eine weitere Sache, die ich Ihnen zeigen möchte , ist, wenn Sie sich erinnern, ich habe Ihnen gesagt, dass dies natürlich ganzzahlige Werte sein werden, aber wir können das tatsächlich ändern, wenn wir nicht wollen, jeder davon, um eine Konstante zu sein, und denken Sie daran, dass es ein integraler Wert sein muss. Wir werden also nicht in der Lage sein , dies in etwas wie einen Float oder ein Double zu ändern, aber wir können den integralen Wert, mit dem diese verbunden sind, nicht ändern . Also lass uns das machen. Nach unserem Aufzählungsnamen setzen wir einen Doppelpunkt gefolgt von dem Datentyp, der uns nicht gewährt wurde. Es muss ein integraler Bestandteil Ihres Datentyps sein. Wir könnten also explizit int sagen, wenn wir wollten, oder wir könnten so etwas wie unsigned sagen , wenn wir das wollten, oder wir könnten den Typ komplett ändern. Wir können also zum Beispiel char sagen. Und das wird gut funktionieren. Jetzt ist allen ein Diagrammwert zugeordnet, aber das müssen Sie nicht tun. Sie können es einfach so lassen, wie es ist, und sie werden natürlich standardmäßig auf eine Ganzzahl gesetzt. Wie auch immer, das ist es für dieses Video und das nächste Video, wir werden tatsächlich ein Basisprogramm mit und ohne Nummer erstellen , damit Sie den wahren Anwendungsfall für einen sehen können und wie man einen tatsächlich verwendet im Code. Also bleib dran wie immer, danke fürs Zuschauen und wir sehen uns im nächsten. 58. Kapitel 11 (Enums): Verwendung von Enums: In diesem Video erstellen wir ein Basisprogramm sowohl in der Breite als auch ohne Enums, damit Sie den wahren Anwendungsfall für sie sehen können. Im grundlegenden Anwendungsfall für E&M geht es im Wesentlichen darum , Ihren Code lesbarer und organisierter zu machen . Also lasst uns anfangen. Das Programm, das wir in diesem Video erstellen werden , wird den Benutzer auffordern eine Frucht aus einer Liste mit einer Reihe von Optionen auszuwählen . Sobald der Benutzer eine Auswahl getroffen hat, werden wir nur angeben eine Bestätigung ihrer Entscheidung an sie zurück. Also lasst uns weitermachen und loslegen. Zunächst erstellen wir also eine Liste von ganzen Zahlen nach verschiedenen Früchten benannt und geben jeder dieser Zahlen einen konstanten Wert. Also werde ich sagen, dass const apple gleich 0 ist. Nina war eine. Orange ist gleich zwei. Und wir machen einfach noch einen. Nehmen wir an, ein konstantes Paar ist gleich drei. Dann unten werden wir weitermachen und dem Benutzer die Liste der Optionen ausdrucken . Also sage ich C raus. Bitte wählen Sie aus der Liste Optionen. Dann erstellen wir eine Ganzzahl zusammen mit den Eingaben, also wenn sie können , und dann heißt das cn. So. Jetzt erstellen wir einen Switch , der ihre Wahl wieder mit ihnen in Beziehung setzt. Und wenn Sie sich daran erinnern, wie man einen Switch erstellt , sagen wir Switch und dann End Klammer. Wir setzen die Variable ein , die wir überprüfen. Also sagen wir Switch Input und dann sagen wir, schmeckt 0 Doppelpunkt. Und dann sagen wir C raus. Und dann schließe mit einem u, zeigt einen Apfel. Einfach so. Und danach sagen wir M-Linie. Und dann bekommen wir ein neues Shirt , das wir auch auf unser Break-Statement setzen. Lassen Sie uns jetzt einfach weitermachen und diese vier Mal kopieren und einfügen. Ordnung, und dann hier unten, wenn ich diese gleich eins setze, ist dies einer der beiden und dieser 123, um ist dies einer der beiden und dieser den Werten zu entsprechen, die mit unseren ganzen Zahlen verbunden sind, dann müssen wir nur den Text ändern in jedem Fall hier. Also für den Fall, dass man sagt, du hast eine Banane gewählt. Dann hier unten ist K zwei. Wir sagen, du hast eine Orange gewählt. Und schließlich heißt es, dass Sie sich für ein Paar entschieden haben. Und hier oben müssen wir dem Benutzer noch eine Liste von Optionen geben . Also sagen wir C raus und dann sagen Anführungszeichen eins. Apple. Dann erstellen wir eine Linie wie diese. Kopieren Sie dies und fügen Sie es ein paar Mal hier ein. Nina, Orange und Birne. Und das haben wir uns tatsächlich ausgedacht, diesen ersten 120123. Und bevor wir unseren Code ausführen, wollen wir eigentlich eine neue Zeile erstellen, rechts erscheinen. Nun, wenn wir unseren Code ausführen, können wir sehen, dass wir gesagt haben Bitte mach eine Frucht basierend auf der Liste der Optionen unten, wir haben Apfel, Banane, Orange ein Paar. Und wenn wir zum Beispiel eine Zwei eingeben, sagen wir, Sie haben eine Orange gewählt, und los geht's, unser Code funktioniert. Wenn es hier unten darum geht, besonders wenn Sie mit einem viel größeren Programm arbeiten, ist das nicht das Vernünftigste auf der Welt, oder? Wir sagen Fälle 0, und dann müssen wir uns daran erinnern, dass dies mit Apple zusammenhängt , Fall eins. Wir müssen uns daran erinnern, dass das mit Banane zusammenhängt. Und obwohl unser Code ziemlich klein ist und es nicht so schwer ist, einfach hier zu überprüfen und hier zu lesen. Wir könnten das mit einer Enumeration viel lesbarer machen. Anstatt also für jede Option eine neue Konstante zu erstellen und dann hier unten zu versuchen, uns an die Assoziation damit zu erinnern, erstellen wir einfach eine Aufzählung. Also hier oben werden wir einfach all diese Optionen entfernen. Und dann sagen wir hier oben Enum, Obst. Und dann in geschweiften Klammern sagen wir Apfel, Banane, Orange. Dann hier unten werden wir weitermachen und unsere Ganzzahl jetzt in etwas wie x ändern . Und dann hier unten werden wir sagen, dass Frucht unser benutzerdefinierter Datentyp ist, in dieser Enumeration, die wir gerade erstellt haben, diese Enklave genannt und sie auf x gesetzt haben. Jetzt bekommen wir eine , weil wir unsere Variable nicht auf eine solche Ganzzahl initialisieren können , aber wir können sie tatsächlich in den Typ fruit umwandeln. Und das wird gut funktionieren. Wenn ich also unseren Code hier ausführe, können Sie sehen, dass er genauso funktioniert wie zuvor. Wenn ich hier eine Option wie drei auswähle, wir an, Sie haben ein Paar ausgewählt, und das liegt daran, dass die Eingabe hier nur dem ganzzahligen Wert entspricht. Da es sich jedoch um eine Art Frucht handelt, können wir hier einfach diese benannten konstanten Werte verwenden . Also hier unten könnte ich einfach Fall sagen, Apple. Und darunter kann ich Banane sagen. Dann können wir Orange und Birne sagen. Und der Grund, warum ich dadurch einen Fehler erhalte , weil ich Banane falsch buchstabiere. Und wenn ich meinen Code ausführe, und jetzt kannst du sehen, dass das gut funktioniert. Und wenn ich eine Option wähle. 0 hier, es heißt, du hast dich für einen Apfel entschieden, und jetzt mussten wir uns an keine Verbindung mehr mit ihm erinnern . Und wie Sie sehen können, ist dies viel einfacher zu lesen. Jetzt kann ich einfach Case, Apple Case, Banana Case, Orange Case Pair sagen . Eine weitere nette Sache an unserer Enum hier, eine Gruppe von Konstanten zu haben, ist, dass wir uns nicht einmal daran erinnern mussten was das waren. Und ich zeige dir, was ich meine. Also hier unten hätte ich den Fall einfach durch den Namen unseres Enums hier sagen durch den Namen unseres Enums und dann zwei Doppelpunkte so setzen können. Und es hätte mir zumindest ein visuelles Studio hier eine Liste unserer verschiedenen Optionen gegeben . Und es zeigt mir auch die damit verbundene Konstante. Jetzt kann ich einfach sagen, dass Case Fruit ein Apfel war. Ich kann die Konstante sehen, die ich damit verknüpft habe , und wähle sie dort einfach aus. Und ich kann es sogar einfach als solches aufschreiben. Und das wird gut funktionieren. Das ist also fantastisch. Nun, hier zugegeben, wir haben nur vier Optionen, wenn wir mit einem größeren Programm arbeiten und eine größere Liste von Früchten hätten, zum Beispiel wäre es viel einfacher gewesen, damit zu arbeiten. Ich hätte einfach jede einzelne Option, die ich hier eingefügt habe, durchsagen und einfach eine für jede Option erstellen können, die auf der ganzen Linie geht. Wie gesagt, der grundlegende Anwendungsfall für ein ENM besteht darin , Ihren Code lesbarer zu machen. Und obwohl wir nur Obst als grundlegendes Beispiel verwendet haben, wenn Sie ein Spiel oder ähnliches entwickeln, hatten Sie ein ENM von Waffen und gaben jedem einen eindeutigen Schlüssel und eine Wertkennung und taten Dinge, die übrigens nur als ein weiteres Beispiel. Eine weitere nette Sache hier ist, dass, wenn wir den hinter Apple gespeicherten Wert aus irgendeinem Grund ändern würden den hinter Apple gespeicherten Wert aus irgendeinem Grund ändern , sagen wir, ich ändere dies in etwa fünf. Und dieser ist zu arm. Oder was Sie haben ist, dass ich das hier unten überhaupt nicht ändern muss und es wird gut funktionieren. Und wenn ich irgendwelche Überschneidungen habe, ist Orange zum Beispiel fünf und Apple fünf. Es wird mich hier unten auch warnen, dass ich zwei Fälle habe, in denen nach derselben Nummer gefragt wurde. Also kein Problem. Ich kann es einfach hier schreiben. Nun hier unten, wie haben wir eigentlich eine Liste von Optionen erstellt? Und wir wollten das nicht jedes Mal ändern müssen , wenn wir hier oben mit unseren Konstanten herumgespielt haben, wir hätten Folgendes tun können. Also werde ich einfach weitermachen und die Zahlen aus diesen entfernen. Dann lasst uns weitermachen und all dies in einer sequentiellen Reihenfolge anordnen. Also entfernen wir einfach all diese von hier. Und wenn wir wollten, könnten wir nur aus Gründen der Klarheit einfach sagen, hey, dieser beginnt bei 0, obwohl das standardmäßig passieren wird. Aber Sie werden sehen, dass einige Leute das tun. Also mache ich einfach weiter und zeige Ihnen das als Beispiel. Und dann hier unten, weil es einfach Apple ausdruckt. Und wenn wir unseren Code ausführen, sagen wir 0 und dann Apple. Also könnten wir das für den Rest so machen. Und dann, genau hier, könnten wir einfach sagen, dass das Raumpaar, wie wir orange Manier gesehen haben und sie investieren, probieren wir. Wenn wir nun unseren Code ausführen, wird dies tatsächlich nur gedruckt , was für uns Optionen sind. Und selbst wenn wir die Werte hier geändert hätten, würde unser Code immer noch einwandfrei funktionieren, was wirklich nett ist. Und wir können auch hier explizit sehen, womit wir arbeiten , wenn wir die verschiedenen Optionen ausdrucken. Also hier oben, wenn ich das auf zehn ändern würde, sind alle meine Werte unterschiedlich und führen meinen Code aus. Meine Optionen wurden damit dynamisch geändert, und es ist auch in unserem Code immer noch sehr gut lesbar. Wie dem auch sei, das wird es im Grunde für dieses Video sein. Hoffentlich habt ihr jetzt ein grundlegendes Verständnis dafür wie man eine Enumeration erstellt und ihr Anwendungsfall darin besteht, dass ihr Code lesbarer und dynamischer wird. In einigen Fällen, wie Sie hier gesehen haben, indem Sie Ihnen eine Gruppe benannter Konstanten geben , die Sie in Ihrem Code verwenden können , und Ihnen auch einen benutzerdefinierten Datentyp geben , mit dem Sie arbeiten können. Das Letzte, was ich Ihnen kurz zeigen möchte, ist, dass Sie etwas wie folgt tun können, da unseren Enum-Konstantennamen jeweils ein tatsächlicher Wert zugeordnet unseren Enum-Konstantennamen jeweils ein tatsächlicher Wert zugeordnet ist. Also hier unten könnte ich sagen, wahr. Und ich setze das einfach in unseren Fall ein. Ich sage, Apple ist durch Apple gleich. Und übrigens, ich hätte einfach Apple sagen können, und das hätte auch funktioniert. Dann hier unten, sage ich Obst, Banane ist einfach so. Und dann kann ich tatsächlich eine if-Anweisung erstellen , die mit der dahinter stehenden Mathematik funktioniert. Ich kann also sagen, wenn Apple größer als Banane ist, und dann etwas Code hier ausführen, weil Apple eine niedrigere Zahl damit verbunden hat , dass es sich um eine Zehn gegenüber einer 11 handelt, dann würde dieser Code nicht ausgeführt werden. Aber wenn ich weitermache und die Runde drehe, sagen wir, ich habe es gekauft, es ist eine größere Banane. Das wird gut funktionieren. Und ich werde das hier schnell an den Anfang unseres Codes verschieben , genau wie es ohne Probleme ausgedruckt wird, aber unter unserer Aufzählung hier. Und wenn ich es starte, sieht man, dass Apple besser ist als Banane. Aber wenn wir weitermachen und das umkehren würden, wäre es nicht so. Also möchte ich Ihnen nur zeigen, dass Sie Enums in Mathe genauso verwenden können Enums in Mathe genauso verwenden , wie Sie es tun würden, wenn es nur eine normale Integralkonstante wäre. Wie auch immer, ich werde weitermachen und den zusätzlichen Code hier loswerden. Und dann möchte ich, dass ihr weitermacht und alles speichert, was wir hier haben weil wir es tatsächlich im nächsten Video verwenden werden , wenn ich euch den anderen Enum-Typ zeige und die Unterschiede zwischen diesem und diesem. Speichern Sie also unbedingt, was Sie haben, da wir es im nächsten Video verwenden werden. Wie immer, danke fürs Zuschauen, und wir sehen uns im nächsten. 59. Kapitel 11 (Enums): Eums und Enum: In diesem Video werden wir darüber sprechen, dass die andere Art von genug eine E&M-Klasse ist, die nur ein paar Unterschiede zu einer regulären ENM aufweist , wie wir sie im letzten Video erstellt haben. Wenn ihr euch im letzten Video erinnert, wollte ich, dass ihr den gesamten Code speichert, den wir für die Verwendung in diesem Video erstellt haben . Aber wenn ihr aus irgendeinem Grund vergessen habt, keine große Sache, das einzige Hauptstück ihr euch jetzt festhält, ist nur das hier, was die eigentliche Kreation unserer Enumeration ist. Und ich werde einfach weitermachen und den Rest vorerst kommentieren. Lassen Sie mich Ihnen noch ein paar andere Dinge über reguläre Enums zeigen andere Dinge über reguläre Enums bevor wir uns ansehen, wie man eine Enum-Klasse erstellt und welche Unterschiede es gibt. Zunächst einmal, wenn wir versuchen, eine Variable mit demselben Namen wie eine unserer Konstanten hier zu erstellen mit demselben Namen wie eine unserer Konstanten hier zu , erhalten wir anstelle unserer genug einen Fehler. Wenn ich also zum Beispiel int orange sage, gleich 0 ist, wenn versucht wird, meinen Code auszuführen, wird mir das einen Fehler geben. Und das liegt daran, dass zum einen eine regelmäßige Aufzählung zum Umfang berücksichtigt wird. Alle diese Namen werden also im Wesentlichen für unser Programm verwendet. Und Sie können hier unten sehen, dass Obst im Zielfernrohr ist und dass es vorziehen würde, wenn wir in diesem Fall eine Enum-Klasse mehr als genug verwenden würden. Die andere Sache mit regulären Aufzählungen ist, dass eine Enum-Variable implizit in eine Ganzzahl konvertiert wird. Und lassen Sie mich Ihnen das jetzt zeigen. Also hier unten, wenn ich weitermache und das entferne, okay. Ich werde nicht meine gesamte Crew durchgehen und es gleich stellen, um es zu beweisen. Okay? Und dann hier unten kann ich sagen, dass x gleich fünf plus minus ist. Wenn ich dann x ausdrucke, erhalte ich t plus. Ich hätte einfach n gleich meiner Frucht setzen können. Und das hätte auch funktioniert. Und es wird diesen Wert implizit in diesen Wert umwandeln. Und wenn du das willst, großartig. Aber wenn wir dies zu einer Enum-Klasse machen würden, würde sie nicht implizit so konvertieren. Und das zeige ich dir jetzt. Wie erstellen wir eine Enum-Klasse? Nun, es ist ziemlich einfach. Und so die gleiche Enum, gefolgt vom Namen ihres Enums, Enum-Klasse, gefolgt vom Namen unseres Genoms. Wie Sie sehen können, haben wir sofort einen Fehler erhalten und er wird nicht implizit von unserer enum-Klasse hier in einen ganzzahligen Wert konvertiert . Wir können es jedoch immer noch explizit tun, indem wir sagen: Hey, mach weiter und mach das zu einer Ganzzahl. Das ist in Ordnung. Wenn wir unseren Code ausführen, erhalten wir immer noch zehn. es also zu einer Klasse machen, werden Sie nicht nur implizit Konvertierungen von Ihrem Enum-Typ durchführen , zwei andere Typen. Stattdessen müssen Sie dies explizit tun. Außerdem nimmt es diese Namen nicht auf. Also hätte ich diesen Apfel zum Beispiel nennen können. Das würde gut funktionieren. Das liegt daran, dass unsere Enum jetzt im Wesentlichen berücksichtigt wird. Und diese Namen sind lokal für diese Klasse hier, und wir werden später im Kurs auf den Unterricht eingehen. Aber im Moment wissen Sie einfach, dass wir hier zwei gleichnamige Namen ohne Probleme haben können . Und das könnte nützlich sein, wenn wir eine andere E&M-Klasse hätten, zum Beispiel wollten wir ähnliche Namen haben. Vielleicht hatte ich einen Enum-Kurs namens Essen. Dann hatte ich hier drinnen verschiedene Lebensmittel , mit denen ich arbeiten wollte. Ich könnte sagen Hühnchen, Apfelchips wie diese. Und das wird ohne Probleme einwandfrei funktionieren, während es bei normalen Enums nicht der Fall wäre. Es gibt also einige Unterschiede. Wenn Sie einen Namen und eine Enum-Klasse verwenden, können Sie sie grundsätzlich noch an anderer Stelle verwenden. Wenn Sie es jedoch nur mit einem regulären ENM verwenden , können Sie nicht auch reguläre Enums implizit andere Typen konvertieren, wo dies als Enum-Klasse nicht möglich ist und Sie dies explizit tun müssen, was helfen Sie dabei , sicherzustellen, dass es genau das ist, was Sie wollen. Da hast du es also. Es gibt Möglichkeiten eine Enum-Klasse im Vergleich zu einer E&M zu erstellen , und Sie kennen jetzt die Unterschiede. Also wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 60. Kapitel 12 (Funktionen): Einführung in die Funktionen: In diesem Video werden wir über Funktionen sprechen. Nun ist eine Funktion oder eine Methode im Wesentlichen nur ein Codeblock, der nur ausgeführt wird, wenn es kalt ist. Wie gesagt, eine Funktion ist im Wesentlichen nur ein Codeblock, so wie wir hier einen Codeblock haben. Der läuft nur, wenn es kalt ist. Und wir haben tatsächlich eine Handvoll verschiedener Funktionen für verschiedene Dinge verwendet . Zum Beispiel haben wir in früheren Videos nur eine Reihe verschiedener Funktionen verwendet , wenn wir über Container gesprochen haben. Außerdem wurde so ziemlich unser gesamter Code in diese Hauptfunktion geschrieben, die, wie ich bereits sagte, jedes C plus plus Programm eine Hauptfunktion benötigt, weil es gleich am Anfang aufgerufen wird des Programms, wenn Ihr Programm startet und endet. Und das hier ist der Codeblock, der ausgeführt wird, wenn es kalt ist. Warum sollten wir also eine Funktion verwenden oder erstellen wollen? Nun, zuerst wird es deinen Code bereinigen. Einer der Gründe, warum wir unseren Code bereinigen , ist, dass Sie jedes Mal, sagen wir, einen Codeblock haben , den Sie verwenden , ich weiß nicht, dreimal oder öfter oder so ähnlich. Anstatt den gesamten Codeblock mehrmals kopieren und einfügen zu lassen, können Sie einfach eine Funktion erstellen, wir Code einfach immer wieder verwenden können, ohne ihn kopieren und einfügen zu müssen. Und noch ein Grund, warum Sie eine Funktion verwenden möchten , weil wir zum Beispiel einen Codeblock hatten, den wir immer wieder verwendet haben . Und wir haben es einfach kopiert und eingefügt und kopiert und eingefügt und kopiert und eingefügt, wo immer wir es brauchten. Nun, was ist, wenn du später merkst, weißt du was, ich brauche das zu erledigen. Jetzt etwas anderes. Nun, jetzt müssen Sie Ihren gesamten Code, den Sie immer wieder verwendet haben, suchen und ihn überall individuell anpassen. Wenn Sie eine Funktion hätten, könnten Sie die Funktion einfach anpassen. Es funktioniert also im Wesentlichen dynamisch. Überall wird es eingesetzt. Der Code hat sich geändert, weil wir einfach die Funktion ändern können, anstatt jeden Teil des Codes, den wir immer wieder verwendet haben, ändern zu müssen . Ordnung, also nur um eine Funktion und unsere Methode als Codeblock zusammenzufassen , der nur ausgeführt wird, wenn er aufgerufen wird Einige der Hauptgründe, aus denen Sie eine Funktion verwenden möchten , ist die Bereinigung Sie Ihren Code, um ihn dynamischer zu gestalten. Und damit Sie Code problemlos immer wieder verwenden können, ohne ihn neu schreiben zu müssen. Wie auch immer, hoffentlich erhalten Sie dadurch ein grundlegendes Verständnis dafür , was eine Funktion ist und wann Sie sie verwenden möchten. Aber wenn Sie es nicht vollständig verstehen, sich keine Sorgen, denn wir werden erstellen und mit ihnen arbeiten in den kommenden Videos verschiedene Beispiele erstellen und mit ihnen arbeiten. Also wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 61. Kapitel 12 (Funktionen): Erstellung einer Funktion: In diesem Video werden wir eine sehr grundlegende Funktion erstellen und mit ihr arbeiten . Und dann werden wir in den kommenden Videos langsam mit immer komplexeren Funktionen arbeiten , damit Sie ein gutes Verständnis dafür bekommen, wie Sie eigene Funktionen verwenden und erstellen können. Und das liegt daran, dass Funktionen Programmieren ständig verwendet werden. Und persönlich finde ich Funktionen und Methoden, wie auch immer man sie nennen will. So nützlich, dass ich nicht einmal eine Programmiersprache anfassen oder mit ihr arbeiten werde , die das nicht hat. Und das liegt daran, dass es deinen Code einfach so sehr bereinigt. Es macht es so viel dynamischer und es ist viel einfacher, damit zu arbeiten und weniger fehleranfällig als das wiederholte Kopieren und Einfügen von Code. Und beim Programmieren wollen Sie immer alles tun, um menschliches Versagen zu verhindern weil jeder Fehler macht. Und manchmal kann es lange dauern, um herauszufinden, was das Problem verursacht. Wie auch immer, genug mit diesem Scherz, lass uns weitermachen und eine eigene Grundfunktion schaffen. Also hier unten, außerhalb unserer Hauptfunktion, werden wir weitermachen und eine eigene Funktion schaffen. Zu Beginn geben wir unseren Rückgabetyp an, und das möchten Sie von der Methode zurückerhalten. Zum Beispiel unsere Hauptmethode hier als Rückgabetyp einer Ganzzahl. Und deshalb geben wir am Ende aller unserer Programme 0 zurück, was ein ganzzahliger Wert ist. Wenn also die Hauptmethode aufgerufen wird, hat sie einen Rückgabetyp Integer und wir geben die Ganzzahl zurück. Und das muss jetzt in C plus gemacht werden Wenn ihr euch erinnert, könnt ihr diese Codezeile tatsächlich entfernen. Und C plus plus erledigt das tatsächlich für Sie, zumindest mit Ihrer Hauptmethode, ohne dass Sie diese Codezeile speziell haben müssen . Aber ich wollte es einfach dort lassen , damit ihr versteht, dass, hey, wir haben einen int-Rückgabetyp, wir müssen eine Ganzzahl zurückgeben. Und auch wenn unsere Hauptfunktion 0 und C plus plus zurückgibt, wissen wir, dass unser gesamter Code erfolgreich durchlaufen wurde und wir hier das Ende erreichen konnten. Und wir hätten hier auch einfach eine 0 setzen können. Aber wir können diesen hervorragenden Erfolg auch hier erzielen , wenn Sie möchten, dass er expliziter dargelegt wird. Also lasst uns weitermachen und dieses Ding tatsächlich erschaffen. Zunächst beginnen wir mit einem Rückgabetyp. In diesem Fall sagen wir „nichtig“. Und was void bedeutet ist, dass wir nichts von dieser Funktion zurückgeben wollen. Wir wollen nur den Code darin ausführen. Und das ist völlig in Ordnung. Und wir werden mit verschiedenen Rückgabearten und einem kommenden Video arbeiten . Aber im Moment werden wir einfach nichts von unserer Funktion zurückgeben. Also führen wir einfach den Code darin aus. Als nächstes nennen wir diesen Druck. Einfach so. Danach werden wir offene und schließende Klammern haben. Und danach haben wir unseren Codeblock, der wiederum nur mit offenen und geschlossenen geschweiften Klammern definiert ist . Der gesamte Code darin ist unser Codeblock. Dieser obere Teil hier ist unsere Methoden- oder Funktionsdeklaration. Also ähnlich wie bei Variablen, wie wir eine Variable deklarieren und initialisieren können. Hier können wir eine Funktion deklarieren. Und dann definieren wir in unserem Codeblock tatsächlich unsere Funktion. Also hier unten oder Codeblock hier wäre unsere Funktionsdefinition. Okay, das ist also unsere Deklaration und was Enter Code Block ist, ist unsere Definition. Lassen Sie uns jetzt weitermachen und tatsächlich etwas Code hier einfügen, damit wir sehen können wie das Ding funktioniert, und wir können alles, was wir wollen, hier einfügen. Aber wir werden weitermachen und Hallo ausdrucken. Da unsere Funktion print hello heißt, haben wir in unserer Hauptmethode diese Funktion nicht wirklich aufgerufen oder sie wird nichts tun. Wie Sie sehen können, unser Code nichts drucken, wenn wir jetzt ausführen wird unser Code nichts drucken, wenn wir jetzt ausführen. Und das liegt daran, dass, wie wir im letzten Video erwähnt haben, eine Funktion ein Codeblock ist, der nur ausgeführt wird, wenn er aufgerufen wird. Wie nennen wir unsere Funktion? Nun, wir sagen den Namen unserer Funktion, gefolgt von offenen Klammern, dann einer engen Klammer und einem Semikolon. So ruft man eine Funktion nicht immer auf. Und wir werden auf einige der verschiedenen Arten eingehen, wenn wir über Argumente und Parameter sprechen. Aber um unsere Funktion hier aufzurufen , so wird es einfach gemacht. Erstens sammeln wir nichts aus Annahmen, also muss ich nirgendwo etwas speichern und wir haben nichts in unseren Klammern. Wir brauchen hier also nichts in unseren Klammern. Lassen Sie mich einfach ein Semikolon am Ende setzen. Und wenn wir versuchen, unseren Code auszuführen, können Sie sehen, dass wir einen Fehler erhalten. Das liegt daran, dass Sie es genau wie bei allem anderen in C plus nicht verwenden können, bevor es definiert ist. Und eine Möglichkeit, das zu beheben, besteht darin einen ganzen Code hier unten zu kopieren, und ich stelle ihn über unsere Hauptfunktion. Und jetzt, wenn wir unseren Code ausführen, können Sie sehen, dass es nicht funktioniert und hallo ausdrucken. Und lass uns weitermachen und die M-Linie hier kaputt machen. Und nur um Ihnen das zu zeigen, können wir sie kopieren und einfügen, wie wir wollen. Und wir können das überall in unseren Code schreiben und es wird gut laufen. Und wie Sie sehen können, haben wir Hallo für jedes Mal ausgedruckt , wenn wir unsere Funktion aufrufen. Nun, das ist eine ziemlich grundlegende Funktion , die nicht wirklich viel leistet, aber Sie haben die Idee für eine , die klar angibt, was wir zu tun versuchen. Wir werden nur Hallo drucken, weil wir unsere Methode angegeben haben. Hier ist unsere Funktion ein sehr definitiver Name dessen, was diese Funktion tut. Wenn wir hier viel mehr Code hätten, zum Beispiel, wenn wir wie einen Absatz oder so etwas ausdrucken würden, würde es sehr chaotisch aussehen , wenn wir das hier jeden einzelnen schreiben Zeit oder kopieren und einfügen, da es viele Texte wären , ohne Gewinn im Vergleich zu nur zwei. So etwas, wo wir einfach unseren Funktionsnamen haben können , wie sub t sich daran erinnert hat, dass dies hier unsere Funktion ist. Wie auch immer, das ist so ziemlich alles für dieses Video. Wie ich in den kommenden Videos sagte, werden wir langsam mit immer komplexeren Funktionen arbeiten , bis wir alle grundlegenden Dinge aufschlüsseln, die Sie zum Erstellen von Funktionen benötigen . von dir selbst. Um dieses Video abzuschließen, lassen Sie uns zunächst kurz die wichtigsten Dinge zusammenfassen , die Sie daraus mitnehmen möchten Um eine sehr einfache und/oder grundlegende Funktion zu erstellen, können Sie Ihren Rückgabetyp festlegen gefolgt vom Namen, offenen und schließenden Klammern und dann Ihrem Codeblock und geschweiften Klammern. Und wie bei allem anderen wird unser Code von oben nach unten gelesen. Es muss also wissen, was unsere Funktion ist, bevor wir sie nutzen können. Wenn wir nichts von einer Funktion zurückgeben, können wir einfach void sagen. Um dann eine Funktion aufzurufen oder tatsächlich zu verwenden, müssen wir zumindest in diesem Fall den Namen unserer Funktion gefolgt von offenen und schließenden Klammern sagen gefolgt von offenen und schließenden Klammern , da hier nichts in unseren Klammern steht. Und zuletzt ein Semikolon. Wenn Sie immer noch ein wenig verwirrt wie Sie Funktionen verwenden, machen Sie sich darüber keine Sorgen. den kommenden Videos werden Sie weitere Beispiele sehen In den kommenden Videos werden Sie weitere Beispiele sehen. Bevor Sie zum nächsten Video übergehen, speichern Sie bitte alles, was Sie haben, da wir es im nächsten Video verwenden werden, wenn wir über die Funktionsprototypen sprechen . Wie dem auch sei, das war's für dieses Video. Wie immer danke fürs Zuschauen und wir sehen uns beim nächsten. 62. Kapitel 12 (Funktionen): Funktionsprototypen: In diesem Video erstellen wir etwas, das als Funktions- oder Methodenprototyp bezeichnet wird. Nun, um Ihnen zu zeigen, was das ist. Wenn Sie sich im letzten Video erinnern, als unsere Methode, Deklaration und Definition hier unten sind, konnten wir unsere Methode nicht aufrufen. Und das liegt daran, dass unser Programm keine Ahnung hatte , wovon wir sprachen. Denn wenn Sie sich erinnern, wird Code von oben nach unten gelesen. Also lasst uns ganz schnell weitermachen. Kann das wieder nach unten bewegen, unsere Hauptfunktion. So. Wenn wir versuchen, dies auszuführen, können Sie sehen, dass wir einen Fehler erhalten. Und es heißt, print hello wurde nicht gefunden. Es hat keine Ahnung, wovon wir sprechen. Jetzt. Wir könnten natürlich einfach das tun, was wir vorher gemacht haben, wo wir unsere gesamte Funktion übernommen haben und sie einfach über unsere Hauptfunktion werfen. Wenn Sie jedoch Ihren Code öffnen, möchten Sie oft nur überprüfen, was in der Hauptfunktion enthalten ist. Sie sollten hoffentlich in der Lage sein, ein Verständnis dafür zu haben , wie der Code funktioniert und wie Sie möglicherweise an einer Menge anderer Methoden vorbeiblättern können, je nachdem, wie komplex Ihr Code ist, wirklich sein kann nervig und chaotisch. Um dieses Problem zu beheben, können wir den sogenannten Funktionsprototyp verwenden, und das ist ziemlich einfach. Also werden wir kopieren, die hier ganz oben auf unserer Methode standen . Fügen Sie es dann über unsere Hauptmethode ein und setzen Sie am Ende ein Semikolon. Und das ist ein Funktionsprototyp. Das ist so ziemlich alles, was wir tun müssen. Und jetzt, wenn unser Code von oben nach unten gelesen wird, heißt es: Oh, okay, es gibt eine Funktion namens print hello, und die Definition ist gleich hier unten. Wenn wir es jetzt nennen, weiß es, wovon wir sprechen. Und wenn wir unseren Code ausführen, können Sie sehen, dass er einwandfrei funktioniert. Jetzt. Das ist ein Funktionsprototyp. Und wenn Sie eine detailliertere Erklärung wünschen was ein Funktionsprototyp ist, ist er im Wesentlichen genau wie eine andere Deklaration und er muss den Rückgabetyp, falls vorhanden, den Namen zusammen mit allen Perimetern haben in Ordnung. Und wir werden in einem späteren Video auf Bitters eingehen. Aber weil wir hier keine hatten, haben wir einfach unsere offenen und geschlossenen Klammern gesetzt. Und zum Schluss folgen Sie einfach mit dem Semikolon. Dadurch kann der Compiler oder das Ding, das all diesen Code in Binärdateien übersetzt , damit der Computer ihn verstehen kann, wissen, was in Zukunft zu erwarten ist. Wenn wir also später einen Funktionsaufruf haben, weiß er bereits, worauf sich dieser Funktionsaufruf bezieht. Da es sich um diese Funktion handelt , die Wurzel deklariert und im Voraus darauf aufmerksam gemacht. Und das alles tut es im Wesentlichen so lange, wie unsere Definition später in unserem Code steht. Denn wie gesagt, oft, wenn Sie Ihren Code öffnen, möchten Sie nur in der Lage sein, sich die Hauptfunktion anzusehen und zu verstehen, was vor sich geht. Sie möchten sich vorher nicht mit einer Menge anderer Texte auseinandersetzen müssen. Du willst nur auf den Punkt der Dinge kommen. Wie dem auch sei, hoffentlich war das ziemlich einfach zu verstehen. Wenn nicht, werden wir auch in den kommenden Videos damit arbeiten . Weil ich immer empfehlen würde, nur einen Funktionsprototyp zu verwenden , anstatt Ihre Funktion über Ihre Hauptfunktion zu stellen, obwohl sie genauso funktioniert, ist es einfach viel sauberer. Also im Grunde denken Sie daran, wenn Sie Ihre Funktionsdefinition später haben möchten, was ich immer empfehlen würde. Alles, was Sie wirklich tun müssen, ist diese oberste Zeile hier zu kopieren, sie oben einzufügen, und wirf ein Semikolon und du gehst trotzdem, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 63. 62: In diesem Video werden wir über Rückgabearten sprechen. Wenn Sie nun daran denken, eine sehr einfache Funktion zu erstellen, beginnen Sie mit dem Rückgabetyp, gefolgt vom Namen, offenen und schließenden Klammern und dann Ihrem Codeblock. Nun, in den letzten Videos, haben wir einfach weitergemacht und gesagt: „Wir wollten nicht, dass sie etwas abgibt, fügten das Schlüsselwort void ein. Aber in diesem Video werden wir uns ansehen, wie wir einen Wert aus unserer Funktion zurückgewinnen und eine Funktion schaffen können , die dies auch tut. Also lasst uns weitermachen und loslegen. Nun, um zu beginnen, machen wir einfach weiter und erstellen unseren Funktionsprototyp. Dazu geben wir einen Rückgabetyp ein , der int sein wird, gefolgt vom Namen, der zehn zurückgegeben wird. Und denk dran, das kann sein, was immer du willst. Die typische Namenskonvention für eine Funktion ist übrigens die Verwendung von CamelCase, genau wie bei Variablen, aber um sie mit einem Großbuchstaben zu beginnen, werden wir Klammern öffnen und schließen und ein Semikolon am Ende, da dies unser Funktionsprototyp ist. Wenn ich nun mit der Maus darüber fahre, können Sie sehen, dass es uns warnt, dass wir keine Definition für unsere Funktion haben. Aber wie Sie sehen können, ist die verschnörkelte Zeile grün, was im Grunde bedeutet, dass Ihr Code weiterhin ausgeführt wird. Aber hey, das ist nur eine Vorwarnung. Wenn wir unseren Code ausführen, erhalten wir grundsätzlich keine Fehler. Der Code läuft einwandfrei. Das ist also eher eine Vorwarnung als eine tatsächliche Warnung, dass ein Code nicht ordnungsgemäß ausgeführt wird. Deshalb ist es zumindest in Visual Studio grün statt rot . Um unsere Funktion tatsächlich zu erstellen, kopieren wir das alles außer dem Semikolon dort und fügen es unten ein. Dann öffnen und schließen wir geschweifte Klammern wie folgt. Und wir geben hier unseren Code ein. Und wir können wieder alles, was wir wollten, in unserem Codeblock haben. Aber in diesem Fall geben wir einfach einen Wert von zehn zurück. Also heute das alles, was wir tun und Wartezeit sagen, gefolgt von zehn und einem Semikolon am Ende. Und los geht's. Und wenn wir mit der Maus darüber fahren, können Sie sehen, dass dies tatsächlich ein ganzzahliger Wert ist, dann haben wir nur unser Semikolon am Ende. Und wenn wir wollen, dass es sogar explizit ist, könnten wir behaupten , dass int ten gleich zehn ist und diese Variable dann direkt zurückgeben. Aber was wir hier hatten, ist in Ordnung. Genau wie bei unserer Hauptmethode, bei der sie mit diesem Return-Schlüsselwort eine Ganzzahl zurückgibt. Ich erinnere mich, dass dies hier im Wesentlichen dasselbe ist wie die Aussage von return zero. Also alles was Sie tun müssen, um einen Wert aus einer Funktion zurückzugeben. Wir geben einfach den Datentyp , den Sie zurückgeben möchten, vor den Namen der Funktion ein und verwenden dann dieses Return-Schlüsselwort und alle Kleinbuchstaben dort, gefolgt von dem Wert, den Sie zurückgeben möchten. Und Sie sollten sicherstellen, dass dieser Datentyp Ihrem Rückgabetyp übereinstimmt. Dann können wir hier oben weitermachen und diesen Wert sammeln. Nun, nur um Ihnen hier etwas zu zeigen, wenn wir weitermachen und ihre Funktion aufrufen, indem wir noch einmal den Namen unserer Funktion sagen, gefolgt von offenen und schließenden Klammern. Da wir hier nichts haben, brauchen wir hier nichts. Wenn Sie dann ein Semikolon am Ende setzen und unseren Code ausführen, können Sie sehen, dass es einwandfrei läuft. Jedes Mal, wenn Sie eine Funktion haben, die einen Datentyp zurückgibt, möchten Sie diesen Wert jedoch eine Funktion haben, die einen Datentyp zurückgibt, irgendwo speichern. Denn wenn Sie diesen Wert nicht speichern, hätten Sie genauso gut von vornherein nichts zurückgeben können. Also hier oben sagen wir etwas wie int x equals return ten. Und dann unten drucken wir einfach x aus Wenn wir unseren Code ausführen, können Sie sehen, dass er jetzt zehn ist. Das liegt daran, dass wir x gleich dem Ergebnis dieser Funktion setzen . Und weil es eine Ganzzahl zurückgibt, erhalten wir eine Ganzzahl zurück. Also haben wir nur eine Variable namens x erstellt und sie gleich dem gesetzt, was unsere Funktion hier zurückgibt. Und wenn ich mit der Maus über diese Funktion fahre, können Sie sehen, dass sie einen ganzzahligen Wert zurückgibt. Also wird x gleich der Ganzzahl sein, die von unserer Funktion hier zurückgegeben wird, was in diesem Fall der Fall ist. Diese Zeile hier ist also genau die gleiche, als ob wir sagen würden, dass x gleich zehn ist. Zumindest in diesem Fall können wir einfach wie gewohnt mit unserer Variablen arbeiten . Also los geht's. Sie wissen jetzt, wie Sie einen Rückgabetyp beim Erstellen einer Funktion verwenden . Anstatt hier void zu sagen, geben Sie im Grunde den Datentyp ein, den Sie zurückgeben möchten. Dann sagen Sie in Ihrer Funktion return, gefolgt vom Wert des Datentyps , den Sie zurückgeben möchten. Jedes Mal, wenn Sie diese Funktion aufrufen, erhalten Sie diesen Wert dieses Typs zurück. Und deshalb konnten wir das Folgende ohne Probleme tun . Für diejenigen unter Ihnen, die sich erinnern, ist x hier eine lokale Variable, da sie in einem Codeblock deklariert wurde und nur innerhalb dieses Codeblocks verfügbar ist, nur innerhalb dieses Codeblocks verfügbar ist nachdem sie deklariert wurde. Das heißt, wir hätten so etwas hier unten sagen können. X ist gleich zehn, und dann sagte das zurückgegebene X. Und das würde gut laufen denn was diesen Codeblock betrifft, existiert x hier nicht. Und was diesen Codeblock betrifft, existiert dieses x hier unten nicht und daher können sie ohne Probleme genau den gleichen Namen haben . Nur etwas zu beachten. Sie möchten die Dinge immer nur so verfügbar machen , wie Sie es unbedingt müssen. Wenn wir hier kein x machen müssten, eine globale Variable, dann würdest du das nicht tun wollen. Sie möchten es nur so verfügbar machen, wie Sie es benötigen. Zum einen haben Sie also keine Probleme, bei denen sich Variablennamen überlappen. Und zweitens minimieren Sie auch menschliche Fehler. Ich mache eine Variable oder was auch immer sie ist, nur so verfügbar wie sie sein muss, was immer gut ist. Nun, um Ihnen eine letzte Sache hier zu zeigen, denn dies kann im Wesentlichen jeder Datentyp sein , den wir wollen. Wir könnten übrigens so etwas wie ein cooles zurückgeben und feststellen, dass wir einen Fehler bekommen, wenn unser Funktionsprototyp hier eine andere Deklaration als unsere eigentliche Funktion hätte eine andere Deklaration als unsere eigentliche Funktion . Sie sollten also sicher sein, dass Sie beiden den gleichen Rückgabetyp geben , so. Und dann könnten wir hier drinnen sagen, dass Pool wahr ist, gleich wahr ist und dann wahr zurückkehrt. Nun, das ist im Wesentlichen dasselbe, als hätten wir das nicht gehabt und sagen einfach zurück, wahr. Ich mache es einfach so, nur um dir zu zeigen, dass wir einfach die variable Region hierher werfen könnten . Und dann hier oben hätten wir eine if-Aussage machen können, wenn wir zehn zurückgegeben hätten. Und wir hätten das wahrscheinlich in etwas wie return true umbenennen wollen . Nur um es klarzustellen. Diese Funktion funktioniert, wenn Sie nur unsere Hauptmethode lesen. Denn man will sich nicht immer innerhalb des Funktionsgrades mit dem Code beschäftigen müssen . Sie möchten einfach, wie ich in der Vergangenheit sagte, in der Lage sein, Ihre Hauptfunktion durchzulesen und ein allgemeines Verständnis dafür zu haben , was vor sich geht. Also hier drüben sagten wir, f return true. Beachten Sie beim Aufruf dieser Funktion, dass wir hier kein Semikolon setzen mussten, da es sich um eine if-Anweisungsbedingung handelt. Und dann unten können wir geschweifte Klammern setzen, wenn true zurückgegeben wird, diesen Code ausführen und wir sagen einfach C out if statement oder so ähnlich. Und wenn wir unseren Code ausführen, können Sie sehen, dass dies einwandfrei funktioniert. Und wenn wir das in false geändert hätten, z. B. und unseren Code ausgeführt hätten, wäre es nicht gelaufen. Wenn Sie also einen booleschen Wert zurückgeben, können Sie ihn auch hier direkt in Ihrer if-Anweisung als Bedingung verwenden . Das ist also ziemlich nett. Denken Sie also daran, eine Funktion ist da, um Ihnen das Leben zu erleichtern. Das ist also im Wesentlichen dasselbe wie nur den booleschen Wert hier zu haben, da er einen booleschen Wert zurückgibt und als wir einen int zurückgegeben haben, war es dasselbe, als ob wir nur den int-Wert dort haben, da gibt eine Ganzzahl zurück. Da hast du es also. Hoffentlich haben Sie jetzt ein grundlegendes Verständnis dafür , wie Sie mit Rückgabetypen arbeiten. Wenn nicht, können Sie das Video jederzeit erneut ansehen. Andernfalls werden Sie in den kommenden Videos weitere Beispiele dafür sehen . Also danke fürs Zuschauen und wir sehen uns im nächsten. 64. Kapitel 12 (Funktionen): Parameter und Argumente: In diesem Video werfen wir einen Blick auf Parameter und Argumente. In der Vergangenheit haben wir jetzt einige grundlegende Funktionen erstellt , die so aussahen. Sie hatten einen Rückgabetyp, gefolgt vom Namen, offenen und schließenden Klammern und dann unserem Codeblock und geschweiften Klammern. Aber innerhalb dieser Klammern können wir tatsächlich die Liste der sogenannten Parameter haben . Wir könnten also sagen, ob Parameter eins , Parameter zwei usw. Und wir können so viele haben, wie wir wollen. Und was sind unsere Werte, die wir in die Funktion übertragen wollen. So können wir tatsächlich Daten an die Funktion senden und Daten von der Funktion zurückholen. Schauen wir uns also an, wie das geht. Also hier unten unter unserer Hauptfunktion, Lass uns weitermachen und eine Funktion erstellen, die zwei Zahlen addiert und uns das Ergebnis davon gibt. Um das zu tun, werden wir weitermachen und es in diesem Fall zitieren. Und dann sagen wir add für unseren Namen. Und dann sagen wir in Klammern int x comma y, einfach so. Und dann haben wir unseren Codeblock und ich werde gleich besprechen, warum wir das hier gemacht haben. Und dann wird innerhalb unseres Codeblocks return x plus y. Jetzt hätten wir eine ganzzahlige Variable namens result erstellen und dann das Ergebnis zurückgeben können. Aber ich möchte Ihnen nur zeigen, dass wir hier einen Ausdruck in unserer Return-Anweisung haben könnten , da beide Ganzzahlen sind eine Ganzzahl zurückgeben werden. Und jetzt, wenn wir unsere Funktion tatsächlich aufrufen, können wir Folgendes tun. Lassen Sie uns zunächst das Ergebnis dieser Funktion ausdrucken . Um das zu tun, sagen wir hier einfach C mit unserem Funktionsnamen. Und dann können Sie in Klammern sehen, dass wir zwei ganzzahlige Werte eingeben müssen. Und die Werte, die wir hier in unseren Funktionsaufruf setzen , werden Argumente genannt, wohingegen wir diese hier unten die Perimeter nennen. Hier können wir also etwas wie 510 sagen. Und dann werden diese Zahlen an unsere Funktion hier gesendet, dann addiert und als Ganzzahl an uns zurückgegeben. Und bevor Sie einen Code ausführen, weil unsere Methode hier unten unter unserer Hauptfunktion liegt, müssen wir nur einen Prototyp erstellen. Also kopieren wir diese oberste Zeile, fügen sie oben ein und setzen ein Semikolon ein. Jetzt haben wir also einen Funktionsprototyp. Wir haben hier einen Funktionsaufruf, und wir haben auch hier unten eine Funktionsdeklaration und Definition. Wenn wir also unseren Code hier sehr schnell ausführen, können Sie sehen, dass er 15 ausgibt. Das liegt daran, dass wir gesagt haben: Hey, wir wollen diesen ganzzahligen Wert ausdrucken , den wir von hier zurückbekommen. Das war unser Rückgabetyp hier. Dann übergeben wir zwei ganzzahlige Werte als Argumente für diese Parameter. Und alles was wir getan haben war zu sagen: Hey, gib den ersten und den zweiten zurück. Übrigens, die Argumente, die wir hier weitergeben, sind die Werte, die wir hier weitergegeben haben, müssen in derselben Reihenfolge sein wie diese hier unten. Diese Zehn werden also niemals an die Stelle von x treten, und diese fünf werden niemals an die Stelle von y treten. Sie werden in Ordnung sein, und in derselben Reihenfolge, in der sie hier unten waren, sie mussten in dieser Reihenfolge hier oben sein auch, weshalb es oft einfacher ist , diese erste Zeile zu kopieren und dann am Ende ein Semikolon hinzuzufügen, wenn Sie Ihren Funktionsprototyp erstellen. Nur um Sie wissen zu lassen, dass diese Parameternamen für diese Funktion lokal sind. Du könntest also immer noch eine Ganzzahl x hier oben und eine int y erstellen , und es wird einwandfrei laufen. Okay? Sie sind also lokal für die Funktion, mit der sie erstellt wurden. Um also einen Parameter zu erstellen, müssen Sie lediglich den Datentyp gefolgt vom Namen verwenden. Und all dieser Name ist der Name, mit dem Sie für den an Ihre Funktion übergebenen Wert arbeiten möchten. Sie erstellen also einen Perimeter, wann immer Sie etwas an Ihre Funktion weitergeben möchten . Und was Sie übergeben, heißt Argument, und es ist der Reihe nach mit demselben Parameter verknüpft. Wir haben hier also 510, die jeweils mit X und Y verknüpft werden. Also diese fünf gilt für x und die Zeit war für warum? Wie gesagt, wir müssen diese benennen, wie wir wollten, auch wenn wir hier oben zwei Variablen erstellt hatten. Wenn wir also gewollt hätten, hätten wir int x oder num one sagen können. Num zwei ist gleich zehn und wird dann in Nummer eins übergeben, num zwei. Und das wird gut laufen. Wie gesagt, dieser Parametername hier ist genau das, was Sie den Wert oder das Argument nennen möchten , das in Ihrer Funktion übergeben wurde. Und sie hätten den gleichen Namen haben können, wenn wir wollten , dass es so wäre und das hätte auch funktioniert. Aber wie ich schon sagte, du kannst das nennen, wie du willst. Wir hatten also nur x und y als die Namen, mit denen wir für die übergebenen Werte arbeiten wollten , damit wir sie in unserem Codebuch verwenden können . Außerdem ist zu beachten, dass dieser Parameter eine Kopie dieser Variablen ist und nicht die Variable selbst. Also wenn und hier sagte ich x plus plus, und dann haben wir hier oben Nummer eins ausgedruckt. Nummer eins würde nicht geändert werden. Also haben wir 16 ausgedruckt , weil wir 510 bestanden haben. Dann haben wir x um eins erhöht, was ursprünglich fünf entsprach. Also fünf bis 66 plus 1016. Und dann haben wir Nummer eins ausgedruckt, was immer noch in Ordnung war. Und das liegt daran, dass, wie gesagt, dieser Umkreis hier x ist, nur eine Kopie des übergebenen Arguments, das Nummer eins war. Und der Verlust der Groß- und Kleinschreibung, was bedeutet , dass das Ändern von x die Variable nicht wirklich ändert , weshalb, wenn dies zum Beispiel eine Konstante wäre, dies einwandfrei läuft, weil wir nicht versucht haben, konstant, wir ändern einfach die Kopie davon. Hoffentlich ergab das alles einen Sinn. Die Hauptsache, die Sie davon nehmen sollen , ist, dass Sie Werte an eine Funktion übergeben können, indem Sie einen Parameter erstellen. Ich gebe nur den Datentyp an, gefolgt von einem Namen, den Sie bearbeiten möchten. innerhalb der Funktion. Und dann wird der Wert , den Sie übergeben haben , das Argument genannt und zur Verwendung in Ihrer Funktion kopiert. Dann müssen Sie nur noch sicherstellen , dass alle Parameter, die Sie hier haben , auch in Ihrem Prototyp platziert sind, und sie werden jetzt auch benötigt, wenn Sie die Funktion aufrufen. Wir hätten also nicht add num one sagen können, da wir einen Fehler bekommen würden, der besagt, hey, das erfordert tatsächlich mehr Argumente, oder? Da hast du es also. Sie wissen jetzt, wie man mit Parametern und Argumenten in C plus arbeitet . Jetzt werde ich weitermachen und den CEO Nummer eins entfernen und ihn für diese Konstante hier entfernen, so. Und ich möchte, dass ihr alles speichert , was wir hier haben, weil wir es sowieso im nächsten Video verwenden werden, danke fürs Zuschauen, und wir sehen uns im nächsten. 65. Kapitel 12 (Funktionen): Optionale Argumente: In diesem Video werden wir über optionale Argumente sprechen. Nun, wenn ihr euch im letzten Video erinnert, habe ich euch gebeten, alles zu sagen , was hattet, damit wir es in diesem Video hier verwenden können. Wenn Sie aus irgendeinem Grund das letzte Video nicht gesehen haben oder vergessen haben, es zu speichern , können Sie das Video jederzeit anhalten und alles kopieren. Wie auch immer, lassen Sie uns einen Blick auf optionale Argumente und ihre Anwendungsfälle werfen. Um ein Argument optional zu machen, müssen wir hier unten in unserer Funktionsdeklaration nur den Parameter auf etwas setzen. Aber wenn wir das tun, müssen wir mit dem ganz rechts beginnen und uns nach links arbeiten. Lassen Sie mich Ihnen zeigen , was ich damit meine. Also kann ich einen Standardwert von 0 angeben. Also bekommen wir hier einen Fehler. gleiche Standardargument, nicht am Ende der Parameterliste. Deshalb muss man immer mit dem ganz rechten beginnen. Wie Sie sehen können, Ordnung, wenn ich y gleich 0 setze. Und dann können wir uns nach links durch jeden der Parameter arbeiten , für die wir einen Standardwert haben möchten. Und das macht sie auch optional. Also jetzt hier oben, wo ich gesagt habe add num eins, num zwei, kann ich diese einfach komplett entfernen. Dann müssen wir noch eine letzte Sache tun, bevor wir unseren Code ausführen, damit wir keine Fehler bekommen. Und das heißt, wir müssen entweder unsere vollständige Methode hier nehmen und sie so an die Spitze setzen. Und das wird gut laufen. Wenn wir also unseren Code hier ausführen, können Sie sehen, dass wir einen ausgedruckt haben. Und das liegt daran, dass wir dieses x plus plus genau hier haben. Aber wenn wir weitermachen und so schnell entfernen, können Sie sehen, ob wir 0 ausgeben und wir keine Argumente übergeben mussten, da die Argumente optional waren, weil unsere Parameter einen Standardwert haben. Jetzt wäre die andere Möglichkeit unsere Funktion dort zu belassen, wo wir sie hatten. Einfach so. Entfernen Sie diesen Standardwert für unsere Parameter in unserer Funktionsdeklaration hier unten und setzen Sie ihn stattdessen in den Funktionsprototyp. Und nein, du kannst es nicht in beiden haben. Wenn Sie also einen Funktionsprototyp haben , müssen Ihre Standardwerte dort abgelegt werden. Und dafür gibt es verschiedene Gründe, die ich nicht wirklich eingehen werde. Aber wissen Sie nur, wenn Sie Standardargumente haben möchten, müssen Sie Ihren Perimeterhilfen einen Standardwert geben, beginnend mit dem am weitesten rechts liegenden Wert und sich für so viele Standardwerte zurückarbeiten für so viele Standardwerte zurückarbeiten . Argumente wie Sie möchten. Und wenn Sie einen Funktionsprototyp haben, müssen diese Standardwerte dort und nicht in unsere Funktionsdefinition aufgenommen werden. Und jetzt, wenn wir die hier wieder loswerden und unseren Code ausführen, können wir sehen, dass wir 0 ausdrucken werden. Wir können diese Werte in alles ändern, was wir wollten, wie y gleich fünf ist, und jetzt wird Hi ausgegeben. Ordnung, schauen wir uns also ein besseres Beispiel an , wann Sie diese verwenden möchten. Also lasst uns unsere Funktion hier loswerden. Und dann werden wir auch alles hier drin loswerden und unseren Funktionsprototyp entfernen , um mit einer leeren Leinwand zu beginnen. Dann erstellen wir hier oben einen Prototyp für diese Funktion. Und was wir tun werden, sagen wir void, Text, Klammern öffnen und schließen und am Ende ein Semikolon. Und dann nehmen wir hier drinnen eine Zeichenkette als Argument. Also brauchen wir einen String-Parameter und nennen wir diesen Text einfach so. Dann machen wir weiter und erstellen die eigentliche Funktionsdeklaration unten die eigentliche Funktionsdeklaration und Definition. Also fügen wir das einfach hier unten ohne Semikolon ein und erstellen unseren Codeblock. Und dann sagen wir einfach CL. Und dann lass uns weitermachen und unserem Text hier einen Standardwert geben. Und weil wir einen Funktionsprototyp haben, der hier hochgehen muss. Also gleich nach den Texten wird gleich gesagt, Sie haben keine Zeichenfolge gesendet. Die Funktion. Auf diese Weise können wir unsere Funktion aufrufen, uns aber warnen, dass wir eigentlich keinen Text eingegeben haben. In diesem Fall hätten wir einfach keinen Standardwert haben können und dann würden wir die Funktion überhaupt nicht aufrufen können, ohne Text einzufügen. Aber wir machen es einfach so, um dir ein Beispiel dafür zu geben , wie du die nutzen könntest. Und dann hier unten rufen wir einfach unsere Methode auf. Also sagen wir Text drucken. Und dann lass uns weitermachen und tatsächlich einen Text hier schicken. Also sagen wir am Ende Text drucken, Hallo, Welt, Semikolon und führen unseren Code aus. Und wie Sie sehen können, haben wir Hello World ausgedruckt. Und wenn wir hier und um unseren Code nichts eingefügt haben, heißt es jetzt, dass Sie keine Zeichenfolge an die Funktion gesendet haben. Also los geht's. Sie wissen jetzt, wie man optionale Argumente erstellt. Zusammenfassend können Sie dies tun, indem Sie einen oder mehrere Parameter angeben, einen Standardwert, der von rechts beginnt einen Standardwert, der von rechts beginnt und sich links nach oben arbeitet, entweder in der Funktionsdeklaration hier oder wenn Sie Ihren Funktionsprototyp haben, dann muss er dorthin gehen. Übrigens, nur ein Hinweis darauf, warum wir von rechts beginnen und uns nach links arbeiten müssen , abgesehen von der Tatsache, dass wir einen Fehler erhalten und wir unseren Code nicht ausführen können, ist der folgende. Nehmen wir an, danach habe ich eine Ganzzahl genommen und wir nennen sie einfach x und setzen sie gleich 0. Und dann werden wir weitermachen und den Standardwert für Text hier entfernen. Und hier unten sagen wir x, so. Dann unten sagen wir C out-Texte, und wir werden x auch so ausdrucken. Und lasst uns einfach weitermachen und diese bis zum Ende umbenennen. Und wenn wir hier nur expliziter sein wollten, okay? Und wenn wir jetzt anfangen, hier Argumente einzubringen, geht es automatisch von links nach rechts, denn denken Sie daran, dass diese in Ordnung sein müssen. Also wenn ich einen Text wie niedrig einfüge. Und jetzt wird dieses Hello String-Argument hier automatisch zu unserem ersten Parameter gehen. Aber wie haben wir es so gemacht? Nun, dann hätten wir keine Möglichkeit, x einen Wert zu geben , ohne Text einen Wert zu geben. Wie auch immer, der Sonnenuntergang ist in Ordnung. Wie dem auch sei, hoffentlich hat das alles Sinn für euch gemacht. Wenn nicht, könnt ihr jederzeit unten im Diskussionsbereich mit mir sprechen , und ich melde mich sowieso so schnell wie möglich bei euch. Danke fürs Zuschauen und wir sehen uns im nächsten. 66. Kapitel 12 (Funktionen): Überlastete Funktionen: In diesem Video werden wir über das sogenannte Funktionsüberladen sprechen , bei dem Sie mehrere Funktionen unter demselben Namen, aber unterschiedlichen Argumenten haben . Und ich zeige Ihnen an einem Beispiel, warum Sie das tun möchten . Lassen Sie uns also weitermachen und eine Funktion zum Addieren von Zahlen erstellen . Also hier unten sagen wir int. Und dann NR Klammer, wir sagen int x comma y, genau so. Und dann sagen wir in unserem Codeblock hier return x plus y. Lassen Sie uns auch unseren Funktionsprototyp an die Spitze setzen . Also kopieren wir das einfach, fügen es oben ein und setzen hier ein Semikolon ein. Und denk daran, wenn wir hier einige Standardwerte haben wollten, müssten sie hier hoch gehen. Also einfach kopieren und einfügen, es würde nicht funktionieren. Wir müssten etwas wie x gleich 0 und y gleich 0 einwerfen . Lassen Sie uns nun diese Funktion überladen , um einen anderen Satz von Argumenten zu verwenden. Um das zu tun, kopieren wir einfach diese Methode und fügen sie unten ein, einfach so. Dann sagen wir Komma und Z. Denken Sie daran, wir könnten es so nennen, wie wir wollten. Und dann sagen wir, gibt x plus y plus z zurück. Dann kopieren wir diese oberste Zeile hier, fügen sie oben ein und setzen ein Semikolon am Ende. Und los geht's. Wir haben jetzt zwei separate Funktionen und ihre jeweiligen Funktionsprototypen, die denselben Namen, aber unterschiedliche Argumente haben. Und das nennt man Funktionsüberladung. Jetzt hier oben in unserer Hauptfunktion kann ich etwas wie CL sagen, füge den Namen unserer Funktion hinzu. Und in Visual Studio sieht man hier zumindest , dass ich zwei Möglichkeiten habe. Und wenn ich mit der Maus darüber fahre, heißt es plus zwei Überladungen. Aber es warnt mich , dass keine Instanz der überladenen Funktion namens add mit der Argumentliste übereinstimmt. Und das liegt daran, dass ich hier nichts reingetan habe. Aber jetzt können Sie sehen , dass ich eine Funktion zum Hinzufügen habe , die zwei in Werte aufnimmt, und ich habe eine zweite Funktion zum Hinzufügen, was bedeutet. Ich könnte so etwas wie fünf Komma fünf sagen. Stellen Sie sicher, dass Sie hier ein Semikolon am Ende setzen und meinen Code ausführen. Und Sie können sehen, dass wir zehn ausgedruckt haben, und das funktioniert einwandfrei, kein Problem. Aber ich könnte jetzt auch einen anderen ganzzahligen Wert eingeben und mir das ansehen. Wir haben 15 ausgedruckt. Diese Funktion zum Hinzufügen ist also ein perfektes Beispiel dafür , wann Sie so etwas tun möchten. Und ich kann so viele davon machen, wie ich wollte. Dann könnte ich einfach diese Funktion zum Hinzufügen verwenden, um so viele Integer-Variablen hinzuzufügen , wie ich möchte. Eine andere Sache, die wir hätten tun können, ist einen völlig anderen Datentyp zu verwenden . Also lasst uns weitermachen und unsere Add-Methode hier noch einmal kopieren und sie unten zwischen die anderen beiden einfügen, so. Und anstatt zu sagen, gib all das ein, werden wir weitermachen und schweben sagen. Dann kopieren wir unsere oberste Zeile. Fügen Sie es hier ein, um einen Prototyp zu erstellen. Vergessen Sie nicht das Semikolon am Ende. Und jetzt kann ich Float-Variablen einfügen, das würde gut funktionieren. Als wäre es wie ein 5,5-Komma 3,3 oder so ähnlich. Und führe unseren Code aus. Jetzt bekommen wir 8,8, einfach so. Das ist also ziemlich nett. Und dies ist wieder ein perfektes Beispiel dafür, wann Sie das Überladen von Funktionen verwenden möchten, denn jetzt kann ich eine Funktion namens add haben. Ich muss mich nicht an verschiedene Funktionsnamen erinnern . Und ich kann Floats einwerfen, ich könnte einen Zentimeter werfen. Und ich kann auch verschiedene Mengen von Zahlen oder Variablen haben , die ich dort hineinwerfen würde. Und ich werde keinerlei Probleme haben , solange ich für jeden Argumentsatz, den ich verwenden möchte , eine Deklaration und Definition erstellt eine Deklaration und Definition habe. Und wenn wir wollten, hätten wir sogar einen dieser Standardwerte geben können, wie unseren ersten hier. Also hier oben hätte ich sagen können, x ist gleich 0 und y ist gleich 0. Und das wird auch gut funktionieren. Jetzt könnte ich hier nichts haben, oder ich hätte eine andere Funktion zum Hinzufügen erstellen können, die in diesem Fall einfach keine Argumente angenommen hat. Aber Sie möchten vorsichtig sein, wenn Sie das tun, denn wenn ich dasselbe mit diesem hier gemacht hätte, dann wüsste es vielleicht nicht, über welches ich überhaupt gesprochen habe . Hatte ich so etwas durchgehend gemacht? Nun, jetzt ist es nicht mehr sicher wovon ich spreche, denn jetzt würde dieser Aufruf der Funktion add für mehr als eine Instanz der überladenen Funktion funktionieren. Das ist also ein Problem in diesem Fall gewährt wird, sie sind alle auf 0 gesetzt. Wen interessiert es also, wenn wir 0 ausdrucken? Aber Sie werden offensichtlich einen Fehler bekommen. Unser Code wird also nicht mehr ausgeführt, bis wir das Problem behoben haben. Also wollte ich dir nur eine Vorwarnung darüber geben. Wie dem auch sei, das war's für dieses Video. Hoffentlich haben Sie jetzt ein Verständnis dafür, wie überladene Funktionen funktionieren und wann Sie sie verwenden möchten. Danke fürs Zuschauen und wir sehen uns im nächsten. 67. Kapitel 12 (Funktionen): Rekursion: In diesem Video werden wir über etwas sprechen, das Rekursion genannt bei dem sich etwas im Grunde von selbst anruft. Und wir werden das mit einer Funktion tun, die uns die Faktorzahl einer Zahl gibt. Wenn Sie nicht wissen, was das ist, lassen Sie mich weitermachen und es Ihnen schnell zeigen. Faktoriell einer Zahl ist also ungefähr so. Nehmen wir an, wir haben ihm die Zahl fünf gegeben, E-Faktor 45. Hier wäre das Folgende. Es wäre fünfmal so hoch wie die Zahl darunter. Also viermal die Zahl darunter ist dreimal zweimal eins. Und das würde uns die Faktorzahl von fünf geben. Sie werden also im Grunde die Zahl, die Sie eingegeben haben , mit dieser Zahl multiplizieren , mal eine darunter, bis Sie die eine erhalten, multiplizieren Sie diese insgesamt und das würde Ihnen Ihre faktoriell. Und wir werden tatsächlich fünf in der Methode verwenden, die erstellt wird, nur damit Sie wissen , dass sie ordnungsgemäß funktioniert. Wenn wir also weitermachen und das hier in einem Taschenrechner tun und fünfmal sagen, viermal dreimal zweimal eins, können Sie sehen, dass wir 120 bekommen. Ordnung, also lasst uns weitermachen und eine Funktion erstellen , die diese erfüllt. Nun gibt es ein paar Möglichkeiten, wie wir das im Code replizieren könnten, aber wir werden das mit Rekursion tun , wo wir etwas auf uns selbst angewiesen haben. Lassen Sie uns also ein Beispiel dafür erstellen. Also unten werden wir weitermachen und eine Methode erstellen, die uns das Faktorium jeder Zahl gibt werden wir weitermachen und eine Methode erstellen, die uns das , die wir in sie einfügen. Also hier unten sagen wir Enter und nennen das Faktoriell. Und dann sagen wir in Klammern Nummer. Dann sagen wir in unserem Codeblock hier, wenn die Zahl größer als eins ist, möchten wir Folgendes tun, nämlich die Anzahl der Male zurückzugeben. Und dann greifen wir wieder auf die faktorielle Methode zurück, so. Hier drin sagen wir die Zahl minus eins. Und dann hier unten werden wir ein anderes Statement wie dieses erstellen und sagen, dass sonst eins zurückgegeben wird. Das mag etwas verwirrend aussehen, aber wir werden eine andere Methode erstellen, die dasselbe ohne Rekursion tut. Und dann werde ich versuchen , beide so gut ich kann zu trennen . Hoffentlich macht alles Sinn wie das dort im Hintergrund funktioniert. Aber zuerst wollen wir weitermachen und unseren Funktionsprototyp erstellen , bevor wir es vergessen. Also füge ich es einfach oben ein und werfe ein Semikolon. Nun unten wird dadurch eine weitere Methode erstellt , zum Beispiel n-Faktoriell. Wir nennen das einfach faktoriell zwei, sagen wir zum Beispiel int Zahl. Und dies ist ein perfektes Beispiel dafür, wenn Sie ihr vielleicht nur eine Variable geben möchten, die denselben Namen wie eine andere hat, weil sie sehr gut lesbar ist. Sie sind überhaupt nicht miteinander verbunden. Der beendete Bereich ist in der Funktion eingeschlossen, also geringfügig. Und dann werden wir in unserem Codeblock hier das folgende Faktorial sagen. Eins. Dann erstellen wir eine for-Schleife und sagen, dass int I gleich eins ist, während ich höre, dass es kleiner oder gleich der Zahl I plus ist. Und dann wird in geschweiften Klammern sagen, dass faktorielle Zeiten gleich ich sind, mag. Also. Danach gehen wir weiter und kehren zurück. Das sollte genau dasselbe bewirken. Dann, bevor ich es vergesse, lass uns weitermachen und so einen Prototyp davon erstellen. nun hier unten Lassen Sie uns nun hier unten auf diese beiden Methoden zurückgreifen. Also sagen wir die CL-Faktorlinie. Und dann unter dieser durchschnittlichen ACL-Faktorlinie zu N-Linie. Vergiss die Klammern hier nicht. Und dann werfen wir fünf für beide ein. Okay, also ich zoome hier die Kliniken raus, ihr könnt sicherstellen, dass euer Code mit meinem übereinstimmt. Und lass uns weitermachen und das machen. Wie Sie sehen können, haben wir 120 für beide Klumpen, was der Faktor für HIV war. In der Realität sieht keine dieser Funktionen schlecht aus, aber dies ist nur ein Beispiel für die Verwendung der Funktionsrekursion , um eine Aufgabe abzuschließen. Also, was hier unter der Haube passiert, da dies für jemanden etwas verwirrend aussehen mag , naja, zuerst sagten wir, wenn die Zahl größer als eins ist, also wenn wir hier das Beispiel von fünf hätten, nun, ist fünf größer als eins? Und die Antwort lautet ja, das ist es. Was wir also tun werden, ist die Rückgabewert die fünfmal so hoch ist wie die Zahl darunter. Was das wird eine Ganzzahl zurückgeben. Aber wenn dieser durchläuft, wird es sagen, dass es für mehr als einen ist. Ja ist es. Jetzt wollen wir also das Vierfache der Zahl darunter haben, und das wird so lange passieren , bis wir irgendwann einen Punkt erreichen, an dem Zahl eins ist. Und was wird es dann einfach zurückgeben? Du musst sicherstellen, dass ich irgendwann diese Rekursion hier habe , wir hören auf und dass das nicht unendlich passieren wird. Ansonsten, ohne auf zu viele Besonderheiten hier einzugehen , geraten sie hier zu sehr ins Unkraut. Ihnen wird der Speicher ausgehen und Sie werden einige Probleme bekommen , weil Sie eine, eine andere Funktion innerhalb einer Funktion, innerhalb einer Funktion erstellen . Und das baut sich einfach auf und baut sich auf, und dann stoßen Sie irgendwann auf Probleme. Lassen Sie uns also einen Blick darauf werfen, was passiert. Lassen Sie uns dazu mit dem allerletzten Fall beginnen. Am Ende von all dem werden wir eine Funktion haben, die besagt, okay, wir wollen zweimal eins zurückgeben, denn das wird es sein, was von der Funktion hier zurückkommt . Sobald dies gleich Eins ist, weil die Zahl nicht größer als eins ist, weil es eins wäre, wird eins zurückgegeben. Also wird am Ende zweimal eins zurückkehren. Dann die Funktion , die versucht hat, das Ergebnis dieser Gleichung hier zu bekommen , nun, ich habe dreimal, dreimal zwei, was dann auf zwei, eins gesunken ist. Dann die Funktion darüber. Wir nehmen vier mal drei, so. Und irgendwann haben wir das fünffache Ergebnis von all dem. Im Wesentlichen haben wir jetzt die Funktion, die gerade eine zurückgegeben hat. Dann haben wir eine zweite Funktion , die diese Mathematik hier durchgeführt hat, eine dritte als eine vierte fünfte Funktion. Also habe ich jetzt fünf Funktionen alleine erstellt , indem einfach diese fünf hier eingefügt wurden. Was also passieren wird, ist diese erste Funktion, wir geben einfach eine zurück. Die zweite gibt den Wert zwei zurück, die nächste einen Wert von sechs und dann 24. Und schließlich gibt uns fünf mal 24 120. Also los geht's. So haben wir unsere endgültige Antwort erhalten. Hoffentlich hat das Sinn ergeben. Wenn nicht, gehen Sie einfach online und schauen Sie sich mehr Rekursionen und anderen Beispielen an, arbeiten Sie damit und brechen Sie wirklich auf, was passiert. Wie gesagt, Sie sollten darauf achten, dass Sie dabei nicht zu viele Funktionen erstellen. Und Sie möchten auch sicherstellen, dass dies nicht unendlich passiert dem gleichen Grund, aus dem Ihnen irgendwann der Speicher ausgeht. In diesem Fall war dies also unser Haltepunkt, war dies also unser Haltepunkt an dem einmal die Zahl nicht mehr größer als eins war, wir einfach zu einer zurückkehrten. Und dieser Haltepunkt wird hier als Basisfall bezeichnet , wenn es um Rekursion geht. Also los geht's. Hoffentlich haben Sie jetzt ein grundlegendes Verständnis dafür , was Funktionsrekursion ist und wissen, wie man sie benutzt und worauf Sie bei der Verwendung achten müssen . Das war's also für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 68. Kapitel 12 (Funktionen): Arrays als Parameter: In diesem Video werden wir über das Übergeben von Arrays als Argument sprechen . Aber bevor ich das mache, möchte ich eines erwähnen. Wir haben also bereits über Rückgabetypen und -Funktionen gesprochen, aber ich möchte Sie wissen lassen, sobald Sie diese Return-Anweisung haben und etwas an die Farbe zurückgeben , was auch immer Ihre Funktion aufruft, kein Code-Passwort wird ausgeführt. Es ist also so, als würde man einfach aus der Unschuld ausbrechen. Also genau hier sage ich CL, hallo, so und führe unseren Code aus. Das wird es nicht mal lesen. Es wird das nicht ausdrucken , da wir bereits eine Rücksendeerklärung hatten. Wenn Sie also eine Funktion mit einem Rückgabetyp erstellen, beachten Sie, dass, sobald Sie eine return-Anweisung haben, diese den Code und Ihre Funktion nicht mehr liest und einfach zum Aufrufer oder zu dem Ort zurückkehrt , an dem du rufst deine Funktion an erster Stelle auf. Wenn Sie also mehrere if-Anweisungen oder ähnliches haben , könnten Sie mehrere Rückgabeanweisungen haben , und das funktioniert einwandfrei. Ich wollte Ihnen nur einen Hinweis darauf geben, dass eine Rückgabeanweisung auch als Break-Anweisung angesehen werden kann , die einen Wert zurückgibt. Schauen wir uns also an wie Arrays als Argumente übergeben werden. Lassen Sie uns zunächst ein Array erstellen. Also setzen wir mein Array hier in eckige Klammern. Es wird nur eine Größe von fünf geben. Und lassen Sie uns einfach weitermachen und ihm gleich fünf Werte geben . Also sagen wir 1234. Und dann lass uns weitermachen und eine Funktion erstellen , die ein Array ausgibt. Also sagen wir void, print array, dann geben wir hier Klammern ein, wir erstellen einen Parameter, ein Array als Argument akzeptiert. Also müssen wir den Datentyp immer noch wie gewohnt haben. Dann haben wir hier einen Namen, mit dem wir wie gewohnt in unserer Funktion arbeiten wollen . Und dann haben wir offene und geschlossene eckige Klammern, um anzuzeigen, dass dies ein Array und nicht nur eine Ganzzahl ist. Und dann unten werden wir weitermachen und hier unseren Codeblock für unsere Funktion erstellen . Dann hier unten drucken wir alle Elemente unseres Arrays aus. Also sagen wir, denn ich bin gleich 0, ich weniger als fünf, ich plus, plus. Und dann war in geschweiften Klammern ein CEO. Und dann wird unser Parametername, ARR als n eckige Klammern ist, sagen, ich werde eine neue Zeile erstellen. Und jetzt, wenn wir hier oben in unserer Hauptfunktion sind, die Sie auch als unsere Farbe betrachten könnten, da sie unsere PrintArray-Funktion nennen wird . Wir können sagen print array und dann in Klammern einfach mein Array übergeben. Also kann ich ein Semikolon setzen. Beachten Sie, dass wir hier in unserem Argument keine eckigen Klammern oder Zahlen setzen . Bevor ich einen Code ausführe, müssen wir einfach einen Funktionsprototyp hier oben erstellen einen Funktionsprototyp hier und ihn ausführen. Sie können sehen, wir drucken es 12345 aus. Beachten Sie nun, dass wir weitergemacht haben und die Größe hier explizit angegeben haben. Und das ist nicht großartig , weil es nicht sehr dynamisch ist. Das Problem ist jedoch, dass wir hier keine Größe als Argument angeben konnten . Um das zu beheben, sollten Sie Komma in der Größe sagen oder so ähnlich. Denken Sie daran, Sie können dies benennen, wie Sie möchten und dann hier weniger als Größe angeben. Und hier oben würden wir unseren Prototyp ändern wollen. Und dann haben wir die Größe genau hier angegeben. Und das würde einfach hoch funktionieren. Wie Sie sehen können, haben wir 12345 ausgedruckt. Und das hier ist der beste Weg, um ein Array als Argument zu übergeben , weil durch das Array und dann diese Größe eine separate Variable haben, da dies jetzt dynamisch funktioniert. Wenn wir jetzt setzen, wird unser Array zum eine Größe von sieben haben Beispiel eine Größe von sieben haben. Und dann bin ich hier. Wir haben zwei weitere Elemente wie dieses und haben es hier geändert. Unsere Funktion wird immer noch so funktionieren, wie wir es wollen. Jetzt können Sie hier eine Größe angeben, wie so. Und das wird auch gut laufen. Das Problem dabei ist, dass Sie, wenn sich unsere Array-Größe hier ändert, wenn sich unsere Array-Größe hier ändert, nicht auf diese anderen Werte zugreifen können , da sie nicht wissen, wovon Sie sprechen. Also, wenn ich hier unten sagte, CL ist der Name unseres Parameters hier, und dann setze zum Beispiel sieben und führe unseren Code aus. Sie können sehen, dass wir eine wirklich seltsame Antwort bekommen. Und das liegt daran, dass unser Array, soweit es betrifft, eine Größe von fünf hat. Können wir einfach nach dem siebten Element fragen und wir werden nicht wirklich darauf eingehen, warum das passiert ist. Aber wisse einfach, dass, obwohl das möglich war, was wir vorher gemacht haben, wo wir hier gerade eine leere Größe hatten. Und dann ist eine separate Größenvariable der beste Weg, dies zu tun. Nun ist die andere interessante Sache Verwendung eines Arrays als Parameter , dass es tatsächlich als Referenz übergeben wird und wir später auf Referenzen eingehen werden. Aber im Grunde, als wir mit Variablen als Parametern arbeiteten , wurde es als Wert übergeben und wir erstellten eine Kopie davon. Ich habe es in einem früheren Video demonstriert, aber mit Arrays werden sie als Referenz übergeben. Und das liegt daran, dass Sie mit N C plus kein Array nach Wert übergeben und eine Kopie davon erstellen können. Und wir werden nicht darauf eingehen, warum das so ist, aber im Wesentlichen, weil dies als Referenz übergeben wird, erstellen wir eigentlich keine Kopie dieses Arrays, und wir arbeiten im Wesentlichen direkt mit dem Array. Also jetzt, wenn ich sage, dass ARR indexed 0 gleich zehn ist, wie am Ende unserer Funktion hier, und dann drucke es aus. Mein Array indiziert 0, so und führe unseren Code aus, Sie können sehen, dass wir zehn ausdrucken. Und das liegt daran , dass wir hier mit unserem Parameternamen gearbeitet haben, weil Arrays als Referenz übergeben werden. Wie gesagt, wir werden in einem zukünftigen Video auf Referenzen eingehen. Wir sind im Grunde in der Lage, eher mit dem Original als mit einer Kopie davon zu arbeiten . Wenn wir also hier etwas mit unserem Umkreis ändern, ändern wir auch das Original. Im Grunde sind die wichtigsten Dinge die Sie aus diesem Video mitnehmen sollen, dass Sie Folgendes tun werden, wenn Sie ein Array als Parameter verwenden möchten. Sie haben den Datentyp des Arrays gefolgt von einem Namen, mit dem Sie arbeiten möchten. Und dann benutze einfach deine eckigen Klammern, um zu kennzeichnen, dass es sich um ein Array handelt. Sie benötigen eine separate Variable für die tatsächliche Größe dieses Arrays. Und auch Arrays werden als Referenz übergeben, was bedeutet, dass wir, wenn wir hier etwas mit unserem Parameternamen ändern , auch das Original ändern werden. also etwas planen, ändert sich das Original, da es sich hier nicht um eine Kopie handelt, wie bei der Arbeit mit anderen Datentypen. Also nur um Ihnen das noch einmal zu zeigen, wenn wir sagen, dass x gleich sieben und dann x als unsere ganzzahlige Variable übergeben und dann den Wert von size hier ändern , indem wir size plus, plus sagen und dann drucken raus x hier unten. Lassen Sie uns weitermachen und das auf eine neue Zeile werfen , damit es etwas offensichtlicher wird. Du siehst, dass wir immer noch sieben haben. Und das liegt daran, dass andere Datentypen, wenn sie als Argument verwendet werden, als Wert übergeben werden. Daher ist die Größe hier nur eine Kopie dieses Werts und hat keine Auswirkungen auf das Original. Aber ein Rennen wird speziell als Referenz übergeben, was im Grunde bedeutet, dass wir mit dem Original arbeiten und überhaupt keine Kopie erstellen werden . Als wir hier mit unserem Umkreis herumgespielt haben, haben wir auch mit dem Original herumgespielt. Hoffentlich ergab das Sinn. Wenn nicht, machen Sie sich darüber keine Sorgen, wir werden im nächsten Video tatsächlich über Referenzen sprechen . Das einzige, was Sie wirklich aus diesem Video herausnehmen müssen , ist, wie Sie ein Array als Parameter verwenden. Zuerst möchten Sie sagen, dass Sie ein Array verwenden, indem die eckigen Klammern zusammen mit dem Datentyp dieses Arrays verwenden, und Sie geben diesen Parameternamen wie gewohnt, dann benötigen Sie einen separaten Variable für die Größe davon, weil es mit dem Argument hier nicht aston sein kann. Also müssen wir es nur separat einfügen. Und schließlich sollten Sie wissen, dass Arrays speziell als Referenz übergeben werden, was bedeutet, dass Sie, wenn Sie hier mit dem Parameter herumspielen, im Wesentlichen mit dem Original herumspielen. Wie auch immer, hoffe es hat dir gefallen. Danke fürs Zuschauen und wir sehen uns im nächsten. 69. Kapitel 13 (Referenzen): Intro Zu Referenzen: In diesem Video gebe ich Ihnen eine kurze Einführung in Referenzen. Ordnung, also habe ich referenziert ist ein Alias oder ein anderer Name für etwas anderes. So haben zum Beispiel viele Leute Spitznamen. Nehmen wir an, Ihr Name war Jonathan. Die Leute könnten dich John nennen, und sie beziehen sich auf dasselbe. In diesem Beispiel würde John in einem Verweis auf Jonathan stehen, wir sprechen über dieselbe Person. Und das ist im Grunde genommen auch das, was ein Verweis in C plus plus ist. So könnten wir zum Beispiel eine Ganzzahl namens x haben, und sagen wir einfach, sie ist gleich 0. Und dann haben wir vielleicht eine Referenz namens Spitzname oder so ähnlich. Nur als schreckliches Beispiel, das ist gleich x. Und jetzt können wir einfach sagen, dass x hier einen Spitznamen hat, und wir werden über dasselbe sprechen. Und wenn wir später x Nickname gleich fünf setzen. Also wenn ich hier unten sage, dass x Spitzname gleich fünf ist. Jetzt wäre x gleich fünf, weil ich mich auf genau dasselbe beziehe. Eine Referenz ist also nur ein Alias oder ein anderer Name für etwas anderes. Und wir werden in den kommenden Videos auf einige Beispiele eingehen, sowie darauf, wie Sie tatsächlich eines für sich selbst erstellen sowie darauf, wie Sie tatsächlich eines für sich selbst erstellen können, und uns einige der verschiedenen Anwendungsfälle für Referenzen ansehen einige der verschiedenen Anwendungsfälle für , damit Sie wissen, wie um sie in Ihren eigenen Programmen zu verwenden. Wie auch immer, ich hoffe, das alles macht Sinn und wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 70. Kapitel 13 (Referenzen): Erstellung einer Referenz: In diesem Video werden wir eine grundlegende Referenz erstellen. Schauen wir uns also an, wie das gelaufen ist. Die Syntax für unsere Referenz lautet also wie folgt. Zuerst haben Sie den Datentyp. Eine andere Sache, auf die Sie sich beziehen werden. Dann folgen Sie dem mit dem kaufmännischen Und-Zeichen wie SO, gefolgt vom Namen der Referenz. Und dann setzen Sie es gleich dem verweisenden Namen , auf den Sie sich beziehen. Okay, also lass uns weitermachen und genau hier eins erstellen. Wir sagen, int x ist gleich fünf. Und darunter sagen wir int kaufmännisches Und-Zeichen. Und wir nennen das X gleich X. Okay? Wir haben also den Datentyp der Sache, auf die wir uns beziehen, der vom kaufmännischen Und-Zeichen gehalten wird, dann den Namen unserer Referenz. Und du kannst das nennen, wie du willst, gefolgt vom Namen. Wenn Sie sich erinnern, habe ich im letzten Video eine Referenz gesagt, also gibt es nur einen Alias um über dasselbe zu sprechen. Jetzt können wir X-ray oder unseren Referenznamen verwenden um alles mit x zu machen , was wir könnten, indem wir einfach x sagen. Das heißt also hier unten, Das heißt also hier unten, ich könnte sagen, dass x ref gleich zehn ist. Und wenn wir jetzt so weitermachen und x ausdrucken , werden zehn ausgedruckt. Und wir hätten es sogar einfach ausdrucken direkt referenziert wird. Und das würde auch zehn ausdrucken. Also eine Referenz als Alias oder ein anderer Name für das Ding , auf das es sich bezieht. Dies und das sind im Wesentlichen dasselbe. Eine Sache, die ich erwähnen möchte, ist, dass Sie eine Referenz nicht deklarieren und später initialisieren können. Muss in derselben Zeile ausgeführt werden, ähnlich wie beispielsweise Konstanten funktionieren, da Sie Ihre Referenz auch später nicht ändern können . Wenn ich also sage, dass y gleich zehn ist, kann ich x ref nicht so ändern , dass es gleich was ist? Nun, ich könnte sagen, extra ist gleich y, aber das würde eigentlich nur x ändern. Das wäre jetzt kein Spitzname für y, und das kannst du sehen, wenn ich x ref und x hier unten in derselben Zeile ausdrucke , und dann erstellen wir eine neue Zeile. Dann ändern wir y so, dass es gleich 15 ist. Und dann sagen wir hier unten C raus und wir drucken extra aus. Warum? Wenn ich meinen Code hier ausführe, können Sie sehen, dass wir zehn ausgedruckt haben, weil extra gleich x gesetzt wurde, was fünf war. Und dann setzen wir x im Grunde gleich y, jetzt ist x gleich zehn. Also haben wir zehn ausgedruckt, weil extra f und x dasselbe sind. Und dann haben wir wieder zehn ausgedruckt, weil diese beiden jetzt im Wesentlichen genau dasselbe sind, dann ändern wir das y in 15, aber wenn wir es ausdrucken, X ref oder x, im Grunde war es immer noch zehn und y war 15, also haben wir 15 danach ausgedruckt. Hoffentlich macht das Sinn. Sobald du gesagt hast, dass ich gleich etwas referenziert habe, kannst du es nicht ändern. Nach dieser Linie ist unsere Referenz in Stein gemeißelt. Extra ist immer das Äquivalent von x und umgekehrt, was y ist, x ändert die Zehn wenn wir x ref die Zeit ändern. Okay, also los geht's. So erstellen Sie eine grundlegende Referenz. Alles, was Sie tun werden, ist den Datentyp der Sache zu nennen, auf die Sie sich beziehen möchten, gefolgt vom kaufmännischen Und-Zeichen, dann haben Sie den Namen Ihrer Referenz und Sie können das wie auch immer nennen du würdest gerne. Und dann haben Sie das Ding, das es sich beziehen wird. Und da hast du es sowieso. Danke fürs Zuschauen und wir sehen uns im nächsten. 71. Kapitel 13 (Referenzen): Referenzen und für jede Schleife: In diesem Video werden wir noch einmal über Referenzen sprechen , aber wir werden speziell über die Verwendung von Referenzen mit für jede Schleife sprechen . Also lasst uns weitermachen und uns das ansehen. Zuerst erstellen wir ein Integer-Array. Also sagen wir in meinem Array, dann haben wir hier ein paar eckige Klammern. Und danach geben wir einige Zahlen ein. Also sag eins, komma zwei. Okay, wir haben also ein int-Array der Größe fünf mit fünf verschiedenen Werten. Denk dran, wenn du willst, könntest du es auch hier reinstellen. Es ist also leichter lesbar. Wie viele Werte befinden sich in Ihrem Array, müssen Sie aber nicht. Als nächstes drucken wir alles rechts und unsere Foreach-Schleife aus rechts und unsere Foreach-Schleife wie wir es in der Vergangenheit getan haben. Und ich entschuldige mich dafür, dass ich dieselben Beispiele immer wieder in mehreren Videos verwendet dieselben Beispiele immer habe. Aber es geht darum, immer nur eine neue Sache einzuführen damit ihr alles besser verstehen könnt . Ordnung, also genau hier erstellen wir für jede Schleife eine und wir sagen vier. Oder wir könnten auto sagen, wenn Sie sich erinnern, da wir sowieso den gleichen Datentyp unseres Containers wollen, und dann sagen wir x Doppelpunkt mein Array, so. Und dann setzen wir in geschweifte Klammern unseren Code, also CL x, und danach erstellen wir einfach so eine neue Zeile. Wenn ich jetzt unseren Code hier ausführe, können Sie sehen, dass das einwandfrei funktioniert. 12345. Wenn wir nun den Wert ändern wollten, der normalerweise von den Dingen in unserem Array ist, würde es nicht funktionieren. Und das liegt daran, dass X hier nur eine Kopie dieser Werte ist. Wir können nicht sagen , dass x gleich fünf ist und erwarten, dass dadurch die tatsächlichen Werte dieser Indizes geändert werden. Wenn wir also unseren Code ausführen, können Sie sehen, dass wir ihn nur 55 Mal ausdrucken werden. Und wenn wir dann unser Array erneut ausdrucken würden, also wenn wir das hier kopieren und es erneut ausdrucken, und wir entfernen einfach dieses x gleich fünf Zeilen. Sie werden sehen, dass sich das nicht ändern wird. Sie drucken es also 55 Mal aus und drucken es dann 12345 aus, wobei es sich um die in unserem Array gespeicherten Werte handelt. Wenn wir dies jedoch zu einem Verweis auf unser Array oder einen anderen Namen für unsere Rate machen, funktioniert dies, wenn Sie möchten. Also alles, was wir tun müssen, ist nach Auto hier, wir werden das kaufmännische Und-Zeichen einfach so einwerfen . Und jetzt wird x eine tatsächliche Referenz auf diese Werte sein, was ziemlich ordentlich ist. Wenn wir also unseren Code erneut ausführen, können Sie sehen, dass wir 510 Mal ausgedruckt haben , denn während er durchlief, war X tatsächlich dasselbe wie jede dieser Variablen hier. Und obwohl ich im letzten Video erwähnt habe , dass eine Referenz nicht geändert werden kann, passiert hier tatsächlich dass jedes Mal, wenn sie unseren Code durchläuft oder für jede Schleife eine Referenz namens x erstellt wird, setze es beim ersten Mal gleich Index 0. Und dann, wenn ich diesen Code ausführe , erstelle ich eine weitere Referenz namens x und setze sie gleich Index eins. Und es geht einfach so durch und erstellt jedes Mal eine neue Referenz, erstellt jedes Mal eine neue Referenz die nach unserem Codeblock nicht mehr existiert. Also mach dir dort um nichts Sorgen. Und weil es sich um eine Referenz handelt, können wir die ursprünglichen Werte ändern. Die andere großartige Sache an Referenzen ist, dass wir, weil wir mit dem Original arbeiten, keine Kopie erstellen, die sehr teuer werden kann. Also zum Beispiel, wenn ich einfach jeden Wert in meiner Rate auf 0 initialisiert habe und dann ein Array der Größe tausend hätte. Das wird gut funktionieren. Und wenn ich rannte, würde das als tausend Werte ausgedruckt werden . Da dies jedoch als Referenz übergeben wurde, ändern Sie einfach den Wert und drucken ihn aus. Wie sind wir aber nicht als Referenz gegangen , wie wir es hier getan haben. Eigentlich mussten wir dann eine Kopie aller eintausend Werte erstellen und diese dann ausdrucken. Und im Moment arbeiten wir mit ganzen Zahlen, und das ist das einzige in unserem Programm, also war es nicht so schlimm. Wenn Sie jedoch mit größeren Datentypen und mehr Informationen arbeiten , kann dies sehr teuer werden. So etwas hier zu tun ist also effizienter. Es gibt also ein weiteres Beispiel dafür, wann eine Referenz verwendet werden muss und wie sie für jede Schleife arbeiten können. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 72. Kapitel 13 (Referenzen): Referenzen als Parameter: In diesem Video werden wir noch einmal über Referenzen sprechen , aber wir werden speziell über Referenzen als Parameter sprechen . Und wenn Sie sich in einem früheren Video erinnern, hatten wir bereits mit Arrays gearbeitet , die als Referenz übergeben wurden, aber jetzt werden wir auch andere Datentypen als Referenz übergeben . Schauen wir uns also an , wie das gemacht wird. Zuerst erstellen wir hier eine Integer-Variable. Also sag int num eins ist gleich fünf. Und danach wollen wir weitermachen und Nummer eins ausdrucken, einfach so. Dann hier unten erstellen wir eine Methode und sagen void, was bedeutet, dass wir keinen Rückgabetyp benötigen. Und wir sagen zum Beispiel auf zehn gesetzt. Und dann nehmen wir in Klammern eine Ganzzahl und nennen sie einfach x. Hier sagen wir, dass Text gleich zehn ist. Und dann erstellen wir einen Prototyp für unsere obige Funktion. Vergessen Sie also nicht das Semikolon. Und dann müssen wir nur noch unsere Funktion hier anrufen. Wir sagen, auf zehn gesetzt. Offene und geschlossene Klammern setzen Zahl eins hinein und ein Semikolon am Ende. Und wenn wir einen Code ausführen, werden fünf ausgegeben. Und das liegt daran, dass andere Datentypen außerhalb von Arrays als Wert übergeben werden. Das heißt, wenn wir hier num eins als unser Argument setzen, war x gleich dem Wert von num eins, der fünf ist. Dann sagten wir, im Wesentlichen fünf ist zehn. Nun, das hat Nummer eins überhaupt nicht geändert. Deshalb war es immer noch in Ordnung, wenn wir es in einem ausdrucken . Aber wenn wir als Referenz gehen, indem hier das kaufmännische Und-Zeichen vor den Datentyp setzen. Und das müssen wir auch in unserem Prototyp tun. Nun, jetzt ist x ein Spitzname oder ein Alias oder eine Präferenz, oder wie auch immer du es für Nummer eins nennen willst . Als unser Code lief, sagten wir, okay, wir werden eine Referenz namens x erstellen und sie gleich dem setzen , was als taub eins übergeben wird. Dann haben wir im Wesentlichen gesagt , dass Nummer eins gleich zehn ist. Wenn wir also unseren Code ausführen und jetzt num eins ist zehn, und das liegt daran, dass x ein Verweis auf das war , was wir weitergegeben haben. Also los geht's. So können Sie Referenzen als Parameter verwenden. Nun, das hat den gleichen Vorteil wie bei jeder Schleife, bei denen jedes Mal, wenn dies durchläuft eine neue Referenz erstellt und sie auf das gesetzt wird, was wir weitergeben. Das nächste Mal nennen wir das, wenn wir zum Beispiel sagen, dass Zahl zwei gleich drei ist. Und dann haben wir unseren Methodenaufruf genau hier kopiert und zwei eingegeben. Dann lasst uns weitermachen und ein Leerzeichen ausdrucken , gefolgt von zwei. Sie werden beide gleich gesetzt. Und das liegt daran, dass jedes Mal, wenn es durchläuft, es eine neue Referenz namens x erstellt die dem Argument entspricht, das wir übergeben haben. X wird also nicht wirklich in eine andere Referenz geändert. Es ist eine ganz neue Referenz namens x, und die existiert dann nicht mehr, sobald dieser Codeblock endet. Deshalb funktioniert das. Was ich erwähnen möchte, ist, dass Sie hier etwas für die Effizienz weitergeben können und sicherstellen , dass Sie diesen Wert nicht ändern. Sagen wir zum Beispiel einfach, wir geben ein ganzes Textbuch weiter und diese Methode bestand darin, es auszudrucken. Nun, wir möchten nicht jedes Mal, wenn wir diese Methode ausführen, eine ganze Kopie dieses Textbuches erstellen . Stattdessen würden wir wahrscheinlich so etwas machen wollen , bei dem wir einfach mit demselben Textbuch arbeiten und dann sicherstellen, dass wir diesen Text nicht durch Benutzerfehler in unserem Codeblock bearbeiten, alles was wir Ich muss tun ist const zu sagen. Und das wird uns daran hindern jetzt mit dieser Variablen herumzuspielen, indem wir sagen: Hey, das ist nicht modifizierbar. Dadurch werden Benutzerfehler von Ihrer Seite oder anderen Personen verhindert , die Ihren Code möglicherweise bearbeiten können. Es wird sehr offensichtlich sein, hey, ich wollte nur einen Verweis auf meine Variable, aber ich wollte diese Variable nicht wirklich ändern. Also egal, was ich in diesen Codeblock einfüge, das lässt mich jetzt nicht damit herumspielen. Sie können also das Schlüsselwort const verwenden, um eine Konstante zu erstellen , auch wenn es sich um eine Referenz handelt, nur um sicherzustellen, dass Sie dies nicht ändern können. Ich möchte nur, dass dies im Grunde nur gelesen wird. Und das ermöglicht Ihnen im Wesentlichen die Effizienz, ohne das Original ändern zu können. Das ist also großartig. Wie dem auch sei, das war's für dieses Video. Ich wollte euch nur zeigen, wie man Referenzen mit Parametern verwenden kann . Wie immer, danke fürs Zuschauen, und wir sehen uns im nächsten. 73. Kapitel 13 (Referenzen): Referenzen als Return: In diesem Video tut es mir so leid, aber wir sprechen über Referenzen. Noch einmal. Diesmal sprechen wir jedoch über Referenzen als Rückgabetypen. Lassen Sie uns also einen Blick darauf werfen, wie das gemacht wird, sowie den tatsächlichen Anwendungsfall dafür. Was wir also tun werden, ist ein int-Array zu erstellen , mit dem wir beginnen. Wir nennen das mein Array und setzen es auf 12345, einfach so. Und wir sagen ausdrücklich : Hey, wir haben hier hohe Werte. Okay, jetzt unten drunter, lass uns weitermachen und alles in unserem Array ausdrucken. Es wird für auto x sagen, kolon mein Array, einfach so. Und lockige Klammern mit Tinte. Wir machen weiter und X in einer neuen Zeile jedes Mal. Lassen Sie uns also eine Leerstelle zwischen diesen , denn wir werden gleich etwas hier platzieren . Und dann hier unten, lass uns weitermachen und unsere eigentliche Funktion oder eine Methode erstellen , wenn du möchtest. Also sagen wir, gefolgt vom kaufmännischen Und-Zeichen. Und dann sagen wir, setze den Wert einfach so für den Namen unserer Funktion. Und dann nehmen wir in Klammern hier einfach eine Ganzzahl, also secant x. Dann haben wir ein paar geschweifte Klammern. Und dann, genau hier, sagen wir drehe meinen Array-Index X. Und lass uns weitermachen und das eigentlich nur Strich für Index nennen . Jetzt werden Sie feststellen, dass wir einen Fehler erhalten , weil unser Array nicht definiert ist. Was wir also eigentlich tun müssen, ist unser Array hier zu nehmen und wir werden es einfach außerhalb einer solchen Funktion platzieren. Dann kopieren wir hier auch unsere Methode, oder die oberste Zeile davon, sollte ich sagen, für unseren Prototyp einfach so. Und jetzt werden wir den Text unten einfügen, hier drucken und unsere Foreach-Schleife kopieren und sie unten einfügen, so. Und dann werden wir zwischendurch tatsächlich die Werte von r ändern, richtig? Da unsere Funktion also eine Referenz als Rückgabetyp hat, können wir sie in diesem Fall tatsächlich auf der linken Seite eines Ausdrucks oder einer Zuweisungsanweisung verwenden . Und du wirst in einer Sekunde sehen, was ich hier meine. Also sagen wir „Sollwert“. Und dann setzen wir in Klammern den Index , den wir ändern möchten. Also lasst uns weitermachen und die zweite hier ändern. Also sagen wir eins, denn denken Sie daran, dass Indizes für Container bei 0 beginnen. Also werden wir diesen Wert genau hier ändern. Und dann können wir einfach sagen gleich. Lass uns weitermachen und direkt darunter ein anderes ändern. Wir sagen also, dass ein Wert von Index vier gleich fünf ist. Oder lassen Sie uns weitermachen und es in etwa 33 ändern. Also lasst uns weitermachen und einen Blick auf unseren gesamten Code werfen. Zuerst haben wir ein Array außerhalb einer Funktion erstellt , sodass es in diesem Fall global verfügbar war , dann hatten wir unseren Funktionsprototyp. Und wenn wir hier zu unserer Funktion gehen, hatten wir einen int-Referenzrückgabetyp und unsere Funktion wurde set value genannt und sie nahm eine Ganzzahl an. Und dann haben wir eine ganzzahlige Referenz des für dieses spezielle Array angegebenen Index zurückgegeben eine ganzzahlige Referenz des . Also alles hier auf der linken Seite könnte genauso gut int reference gesagt haben, nenne es graph zum Beispiel, entspricht meinem Array-Index eins. Und das wäre genau dasselbe gewesen, und das werden wir gleich sehen. Wenn wir also unseren Code hier ausführen, drucken wir eins bis fünf aus und dann drucken wir einen aus. Unser zweiter Index wurde auf 1034 geändert und dann unser letzter Index oder unser Element bei Index 4. Das fünfte Element, wie auch immer Sie es betrachten möchten , wurde auf 33 gesetzt. Da hast du es also. Und es hätte genau dasselbe getan, wenn wir weitergemacht hätten und das genau hier genommen und es gelöscht hätten. Und dann unten ist das gleich zehn, weil wir den Wert hier tatsächlich ändern und dann unseren Code ausführen müssen . Würdest du dir das ansehen, genau das gleiche Ergebnis? Also los geht's. Lassen Sie mich weitermachen und das ganz schnell rückgängig machen. Wie Sie sehen können, war dies im Wesentlichen dasselbe wie dies zu sagen, zusammen mit der Aussage, dass Atem zehn entspricht. Der einzige Unterschied besteht darin, dass wir in der Lage sind einen Verweis auf den gewünschten Index zu erstellen , indem wir einfach eine Referenz zurückgeben und den gewünschten Index einfügen. Und weil wir dann eine Referenz als Rückgabetyp hatten, können Sie unsere Funktion hier auf der linken Seite des Ausdrucks verwenden . Also sagten wir: Hey, ändere mein Array im Wesentlichen bei Index 12, was du auch so sehen könntest, als ob mein Array-Index eins gleich zehn ist, was in diesem Fall zumindest ein viel einfacher. Aber ich wollte Ihnen nur zeigen, wie die Verwendung von Referenzen als Rückgabetypen funktioniert. Im Grunde können Sie nur eine Referenz zurückgeben, die dem entspricht, was Sie hier in die Rücksendung eingegeben haben. Also war unsere Integer-Referenz gleich meinem Array, was auch immer. Also los geht's. Das ist eine Verwendung von Referenzen als Rückgabetypen. Sie setzen das kaufmännische Und-Zeichen hinter den Datentyp des Rückgabetyps, sowohl in Ihrer Deklaration als auch in Ihrem Prototyp, und geben dann zurück, was als Referenz dienen soll. Da hast du es also. Dann schließe dieses Video ab. Lassen Sie mich Ihnen hier zeigen, wie ich gerade einen Verweis auf eine Ganzzahl in unserer Methode erstellt habe. Wenn wir also weitermachen und das alles hier entfernen, rufen wir unsere Methode rent auf. Und wir machen das Gleiche hier unten. Und dann werden wir tatsächlich weitermachen und das Argument aus beiden entfernen. Also haben wir jetzt etwas, das so aussieht, und dann geben wir x zurück. Und um als nächstes zu definieren, erstellen wir eine globale Variable X. Also haben wir jetzt eine Variable namens x, die auf nichts gesetzt ist. Aber wenn wir wollten, könnten wir es auf 0 setzen. Und hier und in unserer Hauptfunktion sagen wir, indem wir den Namen unserer Funktion einschließen und dann Klammern öffnen und schließen, da wir keine Argumente zum Übergeben haben und sie auf zehn setzen. Und dann unten sagen wir x. Also was wird das bewirken? Zuerst haben wir eine globale Variable namens x erstellt, und dann haben wir innerhalb unserer Hauptfunktion einen Aufruf an unsere vom Benutzer erstellte Funktion namens rent by wrath. Und das wird eine ganzzahlige Referenz auf x zurückgeben . Denken Sie daran, dass dies keinen Namen hat, also könnten wir es später nicht wirklich verwenden, aber es wird immer noch für diesen Anwendungsfall funktionieren . Also sagten wir, wir sollen als Referenz zurückkehren , was uns eine ganzzahlige Referenz auf X gibt Jetzt könnte das genauso gut x sein. Das war also dasselbe wie zu sagen, x ist gleich zehn, im Grunde weil wir eine globale Variable namens x. Und wenn wir dann unsere Methode hier aufrufen, sie eine ganzzahlige Referenz auf x zurückgegeben. Das kann also genauso gut x sein, und wir setzen das gleich zehn. Nun, als wir es ausdrucken, war x, x zehn. Und wenn wir unseren Code ausführen, können Sie sehen, dass dies der Fall ist. Also los geht's. Hoffentlich haben Sie jetzt ein Verständnis dafür, wie Sie Referenzen als zurückgegebene Typen verwenden können. Es ermöglicht Ihnen grundsätzlich, eine Referenz direkt zurückzugeben. Und der Hauptgrund dafür ist, dass Sie Ihre Methode hier auf der linken Seite einer Zuweisungsanweisung verwenden können . Sie haben also gesehen, wie das sowohl mit einer Variablen als auch mit einem Container wie einem Array gemacht wird. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 74. Kapitel 13 (Referenzen): Memory: In diesem Video gebe ich Ihnen eine Aufschlüsselung dessen, was Referenzen tatsächlich im Hintergrund tun, als eine Art Einführung in unser nächstes Thema in diesem Kurs als Zeiger. Und du wirst sehen, warum ich dieses Video gemacht habe , wenn wir uns damit befassen. Aber lassen Sie uns jetzt weitermachen und uns auf die Aufschlüsselung dessen konzentrieren , was tatsächlich mit Referenzen passiert. Um das zu tun, erstellen wir eine ganzzahlige Variable namens x und setzen sie zum Beispiel auf fünf. Und dann werde ich weitermachen und hier ein paar Kommentare hinzufügen. Das ist also nur eine int-Variable. Und darunter drucken wir die Speicheradresse unserer Integer-Variablen aus . Und das können wir mit diesem kaufmännischen Und-Zeichen gefolgt vom Namen, unserer Variablen, und dann drucken wir eine neue Zeile aus. Also hier wird die Speicheradresse von x ausgegeben . Und wenn wir unseren Code hier ausführen, können Sie sehen, dass genau das passiert. Oder glauben Sie mir zumindest, das ist die Speicheradresse von x. Ich weiß, es sieht verrückt aus. Keine Sorge, Sie müssen das nicht aufschlüsseln oder so und herausfinden, was das alles ist. Wisse nur, dass wir auf diese Weise die Speicheradresse einer Variablen bekommen können , okay, nun, wenn wir einen Verweis auf x erstellen, also wenn ich kaufmännisches Und-Zeichen sage, und wir nennen das einfach href gleich x. wenn wir einen Verweis auf x erstellen, also wenn ich kaufmännisches Und-Zeichen sage, und wir nennen das einfach href gleich x. dann drucken Sie kaufmännisches Und-Zeichen aus, um die Speicheradresse des Repräsentanten zu erhalten. So erstellen wir auch für dieses ein neues Leben und führen dann unseren Code aus. Sie können sehen, dass diese genau gleich sind. Okay? Also genau hier haben wir eine Referenz x erstellt und dann die Speicheradresse ausgedruckt. Unsere nächste Referenz. Wie Sie gesehen haben, als wir in einem Code waren, sind diese genau dieselben. Und das liegt daran, dass, wie ich bereits sagte, eine Referenz im Wesentlichen nur ein anderer Name für genau dasselbe ist. Nichts ist anders. Sie teilen sich genau den gleichen Speicherort und haben denselben Wert. ausgedruckte Atemindex normalerweise ausgedruckte Atemindex würde nur fünf ausdrucken. Und um den Punkt wirklich zu verdeutlichen, dass sie dasselbe sind. Ich zeige Ihnen hier eine letzte Sache mit der Verwendung als Argument. Und ich weiß, dass wir in der Vergangenheit etwas darüber gesprochen haben, aber ich werde dir nur noch eine Sache dazu zeigen. Wenn Sie also sagen, dass x gleich fünf ist und dann unter diesem Kredit ein Verweis auf Experten kaufmännisches Und-Zeichen, ref ist gleich x. Und dann lassen Sie uns weitermachen und hier unten eine Methode erstellen, und wir sagen void, change int num. Und in unserem Codeblock hier sagen wir, dass num gleich 22 ist und wir müssen einen Prototyp davon erstellen. Ich stelle es einfach hier hin, so. Und jetzt, wenn wir weitermachen und Farbmethoden den Zorn nicht ändern. Also werden wir unseren tatsächlichen Hinweis auf x, c out, breath weitergeben . Also, was denkst du wird passieren? Nun, lass uns weitermachen und sehen, ob es fünf ausdrucken wird. Und das liegt daran, dass, wie gesagt, eine Referenz und das, worauf sie sich bezieht oder auf das sie sich beziehen, dasselbe sind. Wir können es also übergeben, genau wie wir die ursprüngliche Variable geschnitten haben , und es wird immer noch nicht geändert. Wie nehmen wir hier eine, eine Referenz als Parameter, wie wir es in der Vergangenheit getan haben, dann ja, sie würde sich auf 22 ändern. Und wir hätten hier sogar einfach ein x übergeben können und es wird sich immer noch auf 22 ändern , weil sie, wie gesagt, dasselbe sind. Sie können sie in demselben Weiß verwenden. Also los geht's. Ich wollte nur den Punkt verdeutlichen, dass eine Referenz und die Referenz genau dasselbe sind. Sie können auf die gleiche Weise verwendet werden, aber es ist nur ein Spitzname für alles, worauf sie sich beziehen. Sie haben sogar genau den gleichen Wert wie unser Ausdruck grob oder x. Es ist dasselbe und sie teilen sich sogar den gleichen Speicherort im Speicher. Und wie gesagt, der Grund für dieses Video, außer Ihnen zu zeigen, wie Sie die Speicheradresse einer Variablen erhalten . Und dass Sie einfach die Referenz hier einfügen könnten ohne sie zu ändern, weil Sie die Variable beibehalten haben, dies nicht genommen worden wäre, sollte diese Referenz Sie auf das vorbereiten , worüber wir in sprechen werden Die kommende Videoserie ist ein Zeiger. Hoffentlich macht das wie immer Sinn, danke fürs Zuschauen und wir sehen uns im nächsten. 75. Kapitel 14 (Pointers): Einführung in die Zeiger: In diesem Video werden wir über Zeiger sprechen. Nun wird ein Zeiger, wie eine Referenz, verwendet, um die Adresse einer Variablen zu speichern , anstatt nur ihren Wert selbst zu speichern, wie die Referenzen, in denen Zeiger die Adresse einer Variablen speichern. Was ist nun der Sinn eines Zeigers? Nun, zum einen ermöglicht es Ihnen, Anrufe anhand von Referenzen zu assimilieren. Und sie dienen auch zum Erstellen und Bearbeiten dynamischer Datenstrukturen oder der dynamischen Speicherzuweisung. Jetzt werden wir nicht damit beginnen, dynamische Datenstrukturen wirklich zu erstellen und zu manipulieren oder uns mit dynamischer Speicherzuweisung zu befassen. Oder er würde in diesem Kurs, nur weil es ein viel tieferes Thema ist, auf das ich in diesem Kurs speziell eingehen möchte . Abgesehen davon werden wir uns immer noch Zeiger ansehen, wie man sie verwendet, wann man sie verwendet und welche Unterschiede zwischen diesen und Referenzen bestehen und wann Sie benutze eins übereinander, da du in der C plus plus Programmierung nirgendwohin gehen kannst , ohne zu wissen, was Zeiger sind. Daher ist es wichtig zu wissen, was sie sind, wie man sie benutzt und wann man sie benutzt. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 76. 75: In diesem Video erstellen wir unseren ersten Zeiger. Die Syntax für einen Zeiger lautet also wie folgt. Zuerst haben Sie den Datentyp der Variablen, auf die verwiesen wird. So ähnlich wie wir Referenzen erstellt haben, bei denen wir den Datentyp dessen worauf wir verweisen wollten. Sie haben den Datentyp dessen, worauf Sie hinweisen möchten worauf Sie hinweisen wie laut das Sternchensymbol ist, um anzuzeigen, dass es sich um einen Zeiger handelt, ähnelt, mit dem wir das kaufmännische Und-Zeichen haben Verweise bedeuten , dass wir hören, wie eine Referenz erstellt wird. Dann folgen Sie dem Namen des Zeigers, und dann können Sie ihn auch etwas zuweisen. Sie müssen ihm jedoch nicht sofort einen Anfangswert geben, wie wir es sofort einen Anfangswert geben, bei Referenzen getan haben. Und darauf werden wir später im Kurs auch noch ein bisschen näher eingehen. Und wenn Sie es zuweisen, weisen Sie ihm die Adresse einer Variablen zu. Jetzt können das Sternchen und C plus plus, wie wir jetzt gesehen haben, wie wir jetzt gesehen haben, für mehrere verschiedene Dinge verwendet werden. Erstens können sie verwendet werden, um zu deklarieren, dass Sie einen Zeiger erstellen. Es kann verwendet werden, um einen Zeiger zu dereferenzieren, und es kann bei der Multiplikation verwendet werden. Und Sie werden hier gleich einige Beispiele für die Dereferenzierung eines Zeigers sehen. Und dann eine Sache wollte ich Ihnen mit diesem Text hier zeigen , denn ob Sie das kaufmännische Und-Zeichen beim Erstellen einer Referenz direkt neben dem Datentyp oder direkt neben dem Namen haben spielt keine Rolle. Diese beiden Textzeilen sind gleich und wir können sogar einen Verweis auf eine Referenz erstellen, und sie werden jetzt alle dasselbe sein. Also x, ref und rough to here sind jetzt alle im Wesentlichen genau dasselbe. Sie sind alles nur Spitznamen oder Aliase füreinander. Und wenn ich meinen Code hier ausführe, können Sie sehen, dass das einwandfrei funktioniert. also keine Rolle, ob Sie das kaufmännische Es spielt also keine Rolle, ob Sie das kaufmännische Und-Zeichen hier oder hier haben. Und Sie können mehrere Verweise auf dieselbe Sache haben, aber das reicht vorerst aus, wenn es um Referenzen geht. Ich wollte dir das nur ganz schnell zeigen. Und das Gleiche gilt, wenn Sie einen Zeiger erstellen, das Sternchen hier, oder Sie könnten es genau hier haben. Es macht keinen Unterschied. Persönlich. Ich habe es gerne hier, vor allem, weil Sie mit Funktionen arbeiten, wie wir sie mit Referenzen gesehen haben, und Sie einen Rückgabetyp haben , der so aussieht. Sie haben den Namen nicht wirklich dort, und Sie haben ihn nur direkt neben dem Datentyp. Also mochte ich diese Konsistenz auch beim Erstellen mehrerer derselben Variablen. Lassen Sie mich also weitermachen und das schnell entfernen. Wenn ich x Komma y sage, und dann kann ich sagen, dass x gleich fünf und y gleich fünf ist. Und wenn Sie so etwas haben, bei dem Sie mehrere Variablen in derselben Zeile erstellen. Sie können dasselbe mit Referenzen tun, bei denen Sie int x reference und warum referenz sagen . Manche Leute möchten das Symbol neben dem Namen haben, um die Übereinstimmung damit zu gewährleisten. Aber ich persönlich mag es nicht, mehrere Variablen in derselben Zeile zu erstellen. Ich denke, es macht deinen Code nur weniger lesbar. Deshalb habe ich es persönlich neben den Datentyp gestellt. Aber wenn Sie es andersherum sehen, machen Sie sich keine Sorgen, es ist genau dasselbe, ob es sich um einen Zeiger oder eine Referenz handelt, spielt keine Rolle. Das Gleiche. Lassen Sie uns nun endlich auf den Punkt dieses Videos eingehen, nämlich einen Zeiger zu erstellen und zu sehen, wie es funktioniert. Es wird also sagen, dass int x gleich zehn ist, und dann unten erstellen wir einen Zeiger. Also sagen wir int asterisk und dann sagen wir P, x. Manche Leute bevorzugen es, ihren Zeigernamen einen Peer voranzustellen. Also genau hier sehe ich es so, nur damit du weißt, dass es ein Zeiger ist, aber du kannst es benennen, wie du willst. Dann setzen wir es gleich der Adresse von x, also erinnere dich an kaufmännisches Und-Zeichen vor einem Variablennamen wie diesem, weil die Adresse dieser Variablen. In diesem Fall könnten Sie also das kaufmännische Und-Zeichen als Adresse des Betreibers betrachten . Also haben wir einen Zeiger erstellt, indem den Datentyp dessen, worauf wir zeigen wollten, eingefärbt durch das Sternchen, dann den Namen des Zeigers angegeben haben. Dann sagten wir, entspricht der Adresse der Variablen. Das war also unsere Deklaration und Initialisierung eines Zeigers auf. Jetzt müssen Sie es nicht in derselben Zeile initialisieren, in der Sie es deklarieren, anders als bei Referenzen. Also hier unten mache ich einfach weiter und erstelle das neu. Und wir hätten int asterisk x für unseren Zeiger auf x sagen können, und dann einfach ein Semikolon an das Ende setzen können, um einfach unseren 23. zu deklarieren. Und dann können wir es später initialisieren, indem wir sagen, dass P x gleich kaufmännischem Und-Zeichen und x so ist. Und das wird gut laufen. Wenn ich also meinen Code ausführe, können Sie sehen, dass wir keine Fehler bekommen und alles funktioniert. Wie dem auch sei, lass mich weitermachen und das jetzt rückgängig machen. Okay, lass uns weitermachen und unseren Zeiger ausdrucken. Wenn Sie sich also im letzten Video erinnern, habe ich gesagt, dass ein Zeiger im Wesentlichen nur eine Variable ist, die eine Adresse enthält, im Vergleich dazu, wo eine Referenz den Wert enthält. dies eine Referenz gewesen, wäre es im Grunde dasselbe wie X, aber ein Zeiger enthält die Adresse der Variablen. Wenn wir das also ausdrucken als, drucken wir die Adresse hier aus. Und das können Sie genau hier sehen, und das ist die Adresse von x. Und um das zu beweisen, lassen Sie uns weitermachen und auch die Adresse von x ausdrucken. Also nach n Zeile hier drucken wir Adresse von x, indem Sie die Adresse des Operators verwenden, wenn Sie möchten. Und danach, was großartig ist. Ich bin so. Und wenn wir unseren Code hier ausführen, kannst du sehen, hey, da ist unsere Adresse und es gibt genau dieselbe Adresse. Okay? Also enthält der Zeiger natürlich die Adresse dessen , worauf er zeigt. Deshalb haben wir gerade das Planar ausgedruckt. Wir haben die Adresse ausgedruckt. Jetzt unten machen wir das Gegenteil. Also werden wir hier unten den Wert ausdrucken , die Hilfeadresse. Unser Zeiger zeigt auf den Wert von x. Und wir setzen diesen Code einfach darunter. Also sagen wir C raus. Und dann sagen wir das Sternchensymbol gefolgt von p von x und dann eine neue Zeile wie diese, ich werde x und das Licht ausdrucken. Wenn Sie sich also erinnern, wie ich hier oben erwähnt habe, ist ein Sternchen auch ein Verweis, und was es Ihnen ermöglicht, ist Dereferenz und Adressierung. Unser Zeiger zeigt also auf die Adresse von x, das ist es, was er enthält. Und dann können wir mit diesem Sternchen darauf verweisen. Anstatt also nur die Adresse der Variablen zu erhalten, können wir den Wert erhalten, der an dieser Adresse gehalten wird. Und dann drucken wir einfach den Wert von x aus und diese werden genau gleich sein. Wie Sie hier sehen können, haben wir zunächst unseren Zeiger ausgegeben , der nur eine Adresse enthält, und wir haben die Adresse von x ausgedruckt. Und das war dasselbe da unser Zeiger zeigt zu x. Dann hier unten verwenden wir das Sternchensymbol, um einen Zeiger zu dereferenzieren und den tatsächlichen Wert zu erhalten , der an dieser Adresse gehalten wird. Jetzt werden wir uns nicht zu sehr mit Adressen befassen, sondern darauf, wie alles gespeichert wird. Beachten Sie jedoch, dass ein Zeiger die Adresse einer Variablen enthält die Adresse einer Variablen und Sie die Adresse einer Variablen mit diesem kaufmännischen Und-Zeichen abrufen können . In dieser Adresse ist also unser Wert von x gespeichert. Also zehn, in diesen Fällen, wird es unter dieser Adresse gespeichert. Und unser Zeiger enthält dieselbe Adresse , weil wir ihm das gesagt haben. Es. Und dann unten druckten wir unseren Zeiger aus, der, wie gesagt, diese Adresse darstellt. Hier. Wir haben die Adresse von x ausgedruckt, was genau dasselbe sein sollte. Und dann verwenden wir das Sternchensymbol, um einen Zeiger zu dereferenzieren, gefolgt vom Namen unseres Zeigers , der uns den tatsächlichen Wert an dieser Adresse angibt. Und dann drucken wir es x aus, so wie wir es in der Vergangenheit getan haben. Was bedeutet das all die Variablen, die wir erstellt haben? Nun, es bedeutet im Grunde, dass wir, wenn wir Hey sagten , eine Ganzzahl namens x erstellen und sie auf zehn setzen, dass wir eine Ganzzahl erstellen , die den Wert zehn enthält. Und das wird an einer Adresse oder einem Ort im Speicher gespeichert. Und wir können auf diesen Wert zugreifen. Auch hier sind wir an diesem Ort im Speicher, wenn du willst, indem du einfach x sagst. Da hast du es. Hoffentlich war das nicht allzu verwirrend für dich. Ich möchte nur, dass du das wirklich herausnimmst, ist, dass ein Zeiger auf eine Adresse einer Variablen zeigt. Deshalb gilt es. Genau wie unsere Variable hier diesem Wert entspricht, enthält ein Zeiger die Adresse dieser Variablen und auch, wie ein Zeiger erstellt wird. Aber wir werden in den kommenden Videos etwas mehr Übung damit bekommen . Eine letzte Sache, ich erwähnen möchte, ist, dass Sie keinen Zeiger initialisieren müssen, wenn Sie ihn erstellen. Sie können auch ändern, worauf ein Zeiger zeigt. Also können wir z.B. sagen, dass y gleich 15 ist. Und dann hier unten, nachdem wir all das Zeug ausgedruckt haben, wollen wir das alles kopieren und einfügen. Und ich werde hier etwas Platz schaffen, damit wir die Unterschiede zwischen diesen erkennen können. Dann werden wir weitermachen und die Deklaration entfernen. Also dieses int-Sternchen hier unten, und wir sagen einfach, dass Px jetzt auf die Adresse von y zeigt. Und dann drucken wir das x wieder zusammen mit der Adresse von y. Und dann hier unten wir werden die Adresse von y dereferenzieren, was nur ausdruckt, warum im Wesentlichen. Und wir drucken auch y aus. Und wenn wir einen Code ausführen, können Sie sehen, dass dies einwandfrei funktioniert. Es gibt also die Adresse von x und es gibt die Adresse von y. Und dann haben wir auch den Wert zusammen mit dem Wert von y mit dem Zeiger ausgegeben zusammen mit dem Wert und unsere Variable direkt verwendet. Da hast du es also. So benutzt man einen Zeiger und ein bisschen mehr darüber, was ein Zeiger ist. Danke fürs Zuschauen und wir sehen uns beim nächsten. 77. Kapitel 14 (Pointers): (Pointers):: In diesem Video werden wir über Zeiger und Null sprechen . Und wenn Sie Mitglied sind, weil wir es in der Vergangenheit gesehen haben, bedeutet Null einfach nichts oder 0. Okay? Was meine ich mit Zeigern? Und weißt was? Lass uns einen Blick darauf werfen. Also lasst uns weitermachen und hier eine Integer-Variable namens Exelon erstellen . Setze es einfach auf zehn. Und dann machen wir weiter und erstellen einen Zeiger. Also sagen wir wieder Sternchen p x, wie wir es im letzten Video gemacht haben. Und wir werden das gleich setzen und tatsächlich wissen, was in Großbuchstaben stehen muss. Nur zur Verdeutlichung werde ich es auch hier aufstellen. Null ist also dasselbe wie 0. Also, ob ich das oder das hatte, es spielt keine Rolle. Es ist dasselbe. Also mach weiter und mach das, damit es dasselbe gibt. Also was bedeutet das? Und warum würdest du es tun wollen? Nun, jedes Mal, wenn Sie einen Zeiger erstellen, möchten Sie dies nicht tun und dann mit diesem Zeiger arbeiten ohne ihn auf etwas zu initialisieren. Es ist unglaublich gefährlich, da Sie am Ende den Speicher überschreiben oder Ihr Programm und eine ganze Liste anderer schlechter Dinge, die Sie nicht tun möchten, zum Absturz Ihr Programm und eine ganze Liste anderer bringen können. Wenn Sie dies also nicht sofort initialisieren lassen, würde ich immer empfehlen, es so zu setzen. Oder wie gesagt, du könntest 0 setzen, um zu sagen: Hey, ich initialisiere das gerade nicht, aber ich werde das nicht einfach im Wesentlichen initialisiert lassen . Im Grunde heißt das, hier ist ein Zeiger, aber er auf nichts im Speicher. Und wir brauchten diese ganzzahlige Variable namens x. Ich habe sie nur hier eingefügt , um Ihnen das gleiche Beispiel zu zeigen, das wir im letzten Satz hatten. Und was Sie jetzt tun können, bevor diesen Zeiger verwenden, ist Folgendes zu sagen. Hier unten. Bevor wir etwas mit unserem Planeten gemacht haben, können wir tatsächlich überprüfen, ob unser Zeiger auf irgendetwas zeigt , weil wir es hier gleich Null setzen. Im Grunde heißt es, dass es momentan auf nichts hinweist . Aber weil wir das getan haben, können wir Folgendes tun. Wir können sagen, dass Px nicht gleich Null ist. Dann rennen wir, um unseren Code auszuführen, indem wir nein haben, sie sagen ausdrücklich , dass er auf nichts hinweist. Wir können überprüfen, ob es auf etwas hinweist, bevor wir etwas damit anfangen. Ordnung, und das wird dazu beitragen, Tonnen von Fehlern auf der ganzen Linie zu vermeiden , da Sie mit einem Zeiger arbeiten und ihm keinen Anfangswert geben, ihn immer auf Null setzen und dann überprüfe später, ob es immer noch Null ist, bevor du damit gearbeitet hast. Denn wie gesagt, du willst nicht arbeiten. Wenn das mit deinem Zeiger so aussieht und es sehr gefährlich ist. Wenn Sie es also nicht initialisieren wollen , setzen Sie es immer auf Null und sagen Sie im Grunde nur explizit, dass dies auf keinen Ort im Speicher verweist. Und dann kannst du später einfach überprüfen, hey, es zeigt auf nichts und deinen Code hier ausführen . Warum hat es nicht richtig funktioniert, wenn Sie das gerade getan haben, diese Überprüfung hier zu haben, funktioniert nicht, wenn Sie es nicht sagen. Ordnung, also so funktioniert Null im Grunde mit Zeigern. diese Weise können Sie nur explizit sagen, dass Ihr Zeiger gerade auf nichts zeigt , und Sie können überprüfen ob er auf etwas zeigt , bevor Sie etwas damit machen. Und wenn du willst, könntest du immer so etwas machen. Drei, sagen Sie etwas anderes, und dann drucken Sie einen Zeiger aus, zeigt auf irgendetwas, nur um Sie zu warnen, wenn Ihr Code ausgeführt wird , der meine if-Anweisung hasste, nie losging. Denn wenn Ihr Code viel größer wird, haben Sie möglicherweise eine if-Anweisung wie diese. Und es könnte schwer sein zu erkennen, dass, hey, dieser Code nicht ausgeführt wurde, wenn Sie sich nicht selbst ein paar Hinweise geben . Also los geht's. So arbeitet die Natur mit Zeigern und die Wichtigkeit, Null mit Zeigern zu verwenden. Und wie immer danke fürs Zuschauen und wir sehen uns beim nächsten. 78. Kapitel 14 (Pointers): Hinweise und Funktionen: In diesem Video werden wir ein wenig über Zeiger mit Funktionen sprechen . Also genau wie wir es mit Referenzen könnten, einen Rückgabetyp haben, eine Referenz und einen Perimeterbeat sein, auf den ich verwiesen habe. Wir können dasselbe mit Zeigern machen. Und weil wir bereits mit Referenzen darüber gesprochen haben. Und weil Zeiger und Verweise und viele Möglichkeiten sehr ähnlich funktionieren, werde ich das alles in einem Video zusammenfassen , anstatt es in zwei separaten Videos zu haben. Also lasst uns darauf eingehen. Also hier unten unter main, lass uns weitermachen und eine Funktion erstellen, die einen Zeiger für einen Parameter hat. Also, was wir hier tun werden, sagt Lloyd, ändere den Wert so. Und dann sagen wir in Klammern int asterisk, und wir nennen das x einfach so. Und dann sagen wir in geschweiften Klammern, dass Sternchen x gleich zehn ist. Und dann hier oben, lass uns einfach weitermachen und eine ganzzahlige Variable erstellen, sagen wir, x ist gleich fünf, so. Und dann hier unten werden wir weitermachen und unsere Methoden aufrufen den Wert ändern zu sagen, und dann fügen wir einfach x so ein. Und wir müssen sicherstellen, dass wir hier einen Prototyp haben. Also machen wir das einfach hier oben. Und vor unserem Funktionsaufruf wollen wir weitermachen und x ausdrucken und eine Zeile wie diese erstellen. Beachten Sie nun, dass wir diesen Fehler haben, und das liegt daran, dass int mit dem Parameter vom Typ int pointer nicht kompatibel ist . Und wäre das eine Referenz gewesen, so habe ich diese gut gearbeitet, weil wir X senden würden und hier würde dies einen Verweis darauf erzeugen, dass unsere Variable x ist. Und wir können das wie auch immer benennen. Und ich werde einfach weitermachen und diese Nummer hier umbenennen , so. Okay, also wir haben int num, wir haben es ausgedruckt und dann haben wir es als Argument geschickt. Und wäre dies eine Referenz gewesen, hätte das gut funktioniert. Wir hätten eine Referenz erstellt, wer Eier legt und x geändert hat, und wir bekommen es irgendwie raus. Hier unten. Ich drucke es gerade wieder aus. Und jetzt was für eine Änderung auf zehn. Und wir müssen es auch hier oben in unserem Prototyp für einen Moment ändern und sehen, ob wir es ausführen würden, es würde einwandfrei funktionieren. Ein Zeiger speichert den Wert jedoch nicht direkt und speichert die Adresse. Wenn wir also weitermachen und dies jetzt wieder in einen Zeiger ändern, können wir immer noch dasselbe tun, außer dass wir die Adresse der Variablen senden müssen. Also setzen wir unser kaufmännisches Und-Zeichen genau hier ein. Und dann können wir hier unten nicht einfach sagen, dass x gleich zehn ist, weil wir die Adresse des Zeigers nicht ändern wollen. Und Sie können sehen, dass uns das tatsächlich einen Fehler gibt, aber das können wir nicht ändern. Wenn wir also weitermachen und das referenzieren, würde es einwandfrei funktionieren. Jetzt haben wir eine Ganzzahl namens num erstellt , die nicht gleich fünf ist. Dann drucken wir es aus num, was natürlich nur fünf ausdrucken wird. Dann haben wir hier die Adresse von num in unseren Parameter geschickt. Jetzt haben wir einen Zeiger , der auf die Adresse von num zeigt, und dann haben wir einen Zeiger dereferenziert. Wir sagen also, dass der Wert, der an der Adresse von num gehalten wird, auf zehn geändert werden soll. Und so ändert sich auch num auf zehn. Und wenn wir unseren Code hier ausführen, können Sie sehen, dass genau das passiert. Jetzt. Was wäre, wenn wir zuerst einen Zeiger erstellt hätten? Wenn wir also ein Sternchen setzen würden, nennen wir diesen Punkt einfach so und setzen ihn gleich der Adresse von num und senden ihn dann ein. Und wenn wir jetzt einen Code ausführen, ist das genau das Gleiche. Der einzige Unterschied ist, dass wir gerade unseren Zeiger gesendet haben. Dann hatten wir im Grunde einen Zeiger, der auf dieselbe genaue Adresse hinwies , und wir erhielten den Wert , der dort gehalten wurde, änderten ihn dann in zehn. Das hat also auch funktioniert. Und zum Schluss wollen wir weitermachen und einen Zeiger als Rückgabetyp haben. Also lasst uns weitermachen und unseren Zeiger hier uninitialisieren und diesen Wert einfach auf Null setzen. Denken Sie daran, wenn Sie es ursprünglich nicht initialisieren möchten, möchten Sie es auf Null setzen. Also machen wir das. Dann hier unten schicken wir die Adresse von Num. Also sagen wir nein, taub, so. Und wir ändern es von void in einen solchen Zeigertyp. Und wir müssen das Gleiche hier oben tun. Dann hier unten geben wir x zurück, also haben wir jetzt ein Einkommen , das fünf entspricht. Dann haben wir es ausgedruckt. Dann haben wir einen Zeiger namens point erstellt , der derzeit auf nichts zeigt. Und wir haben ausdrücklich gesagt, dass wir, indem wir es gleich no setzen, unsere Methode hier ausgeführt haben, ihre Methode genannt wird, die die Adresse von num angenommen hat, sie in einen Zeiger gesetzt hat , den wir x genannt haben, und dann geben wir das zurück Zeiger , der, wenn Sie sich an einen Punkt erinnern, nur eine Adresse enthält, und wir geben die Adresse und einen Integer-Zeiger zurück , der hierher zurückgeschickt wird. Jetzt haben wir einen int-Zeiger, der die Adresse von num enthält , weil wir das gesendet haben. Aber wir wollen weitermachen und das irgendwo aufbewahren. Denken Sie daran, jedes Mal, wenn Sie etwas drehen, sollten Sie es in etwas aufbewahren. Sonst ist es so. Also genau hier, was wir sagen werden, ist, dass 0 dem entspricht, und das wird einwandfrei funktionieren. Was wir nun nach einer aufgerufenen Methode tun können, ist zu sagen, wir wollen dereferenzieren. Denken Sie daran, wir setzen einen Sternchenzeiger und setzen ihn auf zehn, so wie wir es zuvor getan haben. Jetzt sagen wir, wir wollen die Adresse von num nehmen und sie im Grunde genommen dereferenzieren. Sie erhalten den tatsächlichen Wert , dass keiner gehalten wird, was derzeit fünf , und setzen ihn gleich, dann drucken wir hier unten zehn aus. Und lassen Sie uns weitermachen und uns das schnell ansehen . Also los geht's. Die Top 510 und wie wollen wir es? Wir hätten diesen Methodenaufruf einfach hier platzieren können, das hier loswerden. Und das wäre auch gut gelaufen, da dies eine Adresse für uns zurückgibt und wir diese einer Adresse gleichsetzen müssen. Das funktioniert alles gut und gut. Also los geht's. Es funktioniert im Wesentlichen genauso wie der Referenztyp, der, mit der Ausnahme, dass sunset mit einigen Einschränkungen eine Adresse anstelle des Werts enthält , wie unser Referenztyp dort. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 79. Kapitel 14 (Pointers): Hinweise und Arrays: In diesem Video werden wir über Zeiger und Arrays sprechen und einige der interessanten Ähnlichkeiten und Interaktionen zwischen ihnen besprechen. Also lasst uns anfangen. Lassen Sie uns zunächst ein Integer-Array erstellen. Also sagen wir int, mein Array, dann öffne ich und geschlossene eckige Klammern wurden hier in eine Zahl wie drei gesetzt. Und ich möchte dies auf drei verschiedene Zahlen setzen. Lass uns weitermachen und 1025 sagen. Und dann unten werden wir weitermachen und einen Zeiger erstellen. Also sagen wir int asterisk, und ich sage PTR, kurz für Pointer. Und dann sagen wir einfach, entspricht meinem Array, einfach so. Dann denke ich, ich möchte Ihnen zeigen, dass dieser Wert hier nur ein Kontinent sein muss und Sie hier keine Zahl direkt eingeben müssen. Wenn wir also mal sagen und dann zum Beispiel diese Array-Größe aufrufen , setzen Sie dies auf drei. Wir können die Array-Größe genau hier in unsere Array-Größe setzen , wenn Sie möchten. Und dann hier unten, was wir tun werden, ist eine grundlegende For-Schleifen zu erstellen, die notwendig sind , denn ich bin gleich 0, ich bin kleiner als die Array-Größe I plus. Und dann werden wir in unserer For-Loop ein paar verschiedene Dinge ausdrucken . Wir werden hier die Adressen dieser Variablen sowie die Werte mit unserem Zeiger ausdrucken hier die Adressen dieser Variablen . Lassen Sie uns also einen Blick auf einige Möglichkeiten werfen, wie wir dies tun können. Der erste wäre der Folgende. Wir können etwas wie C sagen. Und dann können wir in Anführungszeichen hier sagen, adressieren Sie mein Array auf der offenen eckigen Klammer. Und danach können wir N zeichnen. Danach erstellen wir einen weiteren Satz von Anführungszeichen, gefolgt von einer geschlossenen eckigen Klammer, um gleich plus zu sagen. Dann unten wird CL gesagt, wobei PTR der Name unseres Alibi ist. Lassen Sie uns nun weitermachen und das auch unten kopieren und einfügen. Die Armee ändert diesen in einen solchen Wert und lässt den Rest außer ihm hier unten. Ich sage C out pointer. Wir werden hier einen Zeiger dereferenzieren und der Wert wird ausgegeben. Aber jetzt, wie werden wir eigentlich einen Wert nach dem anderen durchlaufen und ausdrucken? Nun, das Interessante ist, dass diese Zeile hier im Grunde besagt, dass wir zu einer Vorzeichenadresse meines Arrays bei Index 0 bis GTR gegangen zu einer Vorzeichenadresse meines sind. Im Wesentlichen ist das so, als würde man sagen, dass der Zeiger meinem Array-Index 0 mit einem Und-Zeichen entspricht. Und das und das sind im Wesentlichen gleichwertig. Der Grund, warum dies die Adresse unseres Arrays bei Index 0, q, zuweist die Adresse unseres Arrays bei Index 0, q, , liegt darin, dass unser Array-Name hier tatsächlich die Adresse des ersten Elements des Arrays enthält . Und das wirkt wie ein konstanter Zeiger, was bedeutet, dass die in unserem Array-Namen gespeicherte Adresse nicht geändert werden kann. Interessanterweise haben Zeiger tatsächlich einige Operatoren, die wir in diesem Fall verwenden können. Und ich zeige dir eins hier unten. Wir können Zeiger plus, plus sagen. Und wenn dies durch die Adressen steigt, wird es, wenn Sie möchten, entlang dieser Elemente nach oben gehen. Und wenn Sie sich erinnern, als wir zum ersten Mal über Arrays gesprochen haben, habe ich Ihnen gesagt, dass diese Werte in sequentieller Reihenfolge gespeichert wurden. Und so können wir im Wesentlichen einfach unseren Zeiger in sequentieller Reihenfolge nach oben bewegen, um uns entlang dieser Werte nach oben zu bewegen. Da unser Zeiger hier bei Index 0 beginnt und bei jedem Ausführen unseres Codes, können Sie sehen, dass wir die Adresse meines Arrays bei Index 0 angegeben haben, was nur durch diesen I-Wert angezeigt wurde , den wir gleich erhöht haben Zeiger. Und so ist da unsere Adresse. Und dann setzen wir einen Wert meines Arrays bei Index 0 gleich zehn. Und das liegt daran, dass wir diese Adresse hier dereferenziert haben. Und dann haben wir unseren Zeiger hier um eins erhöht. Und das hat es im Wesentlichen um ein Element im Array nach oben verschoben . Und wir können die nächste Adresse und den nächsten Wert vollständig ausdrucken . Schauen wir uns jetzt einen anderen Weg an, weil ich das getan habe. Also lasst uns weitermachen und diesen Zeiger plus, plus entfernen. Und dann, direkt nach dem Wort Zeiger, erlaubt uns C Plus Plus, dieselbe Syntax zu verwenden , die wir für ein Array tun würden , wenn unser Zeiger gleich einem Array wie diesem ist. Wir können also einfach offene und geschlossene eckige Klammern haben und sie genau dort hineinlegen und dasselbe hier unten tun. Und das wird uns im Wesentlichen den gleichen Effekt geben . Aber statt des Sternchens hier setzen wir das Und-Zeichen so ein und führen unseren Code aus. Und wie Sie sehen können, funktioniert dies jetzt tatsächlich als Variable, also ist es umgekehrt. Wenn wir also weitermachen und das in Ordnung bringen wollen, können Sie einfach unser kaufmännisches Und-Zeichen hierher bewegen. Und jetzt, genau als wäre das ein Array, werden wir hier das kaufmännische Und-Zeichen setzen , um die Adresse der Variablen zu erhalten. Und wir würden es einfach normal verwenden , um die Variable selbst zu erhalten. Wenn wir also einen Code ausführen, können Sie sehen, dass er genauso funktioniert wie zuvor. Schauen wir uns einen weiteren Weg an. Wir könnten mit uns zusammenarbeiten, und das ist nicht die letzte Möglichkeit, mit Zeigern und Arrays zu arbeiten. Es ist nur das letzte, das wir hier präsentieren werden , und die meisten Gerichte, also wählen Sie aus, um hier einen Zeiger zu erstellen und ihn gleich meinem Array zu setzen, dann machen wir das tatsächlich zu einem Reihe von Zeigern. Ich setze so eckige Klammern ein. Und dann legen wir einfach eine Größenänderung so rein. Dann hier unten lassen wir das so wie es ist. Wir werden weitermachen und diesen Code kürzen da wir ihn später hier in einem Moment verwenden können. Und dann werden wir hier drinnen Zeiger Ampersand meinen Array-Index I sagen . Jetzt werden unserem Zeiger-Array , das derzeit nicht initialisiert ist , das derzeit nicht initialisiert ist, die Adressen dieser zugewiesen Variablen. Okay? Und dann hier unten, lass uns weitermachen und eine weitere für eine Schleife erstellen. Aber es sieht genauso aus wie oben. I ist gleich 0. Ich habe weniger als Größe I plus, plus. Und das Schöne daran, hier die Array-Größe zu sagen und für die tatsächliche Array-Größe zu verwenden, ist, dass dies sehr lesbar ist und es sehr klar wann wir unsere Schleife stoppen und wie oft wir laufen durch sie, einmal pro Element in unserem Array. Und dann hier unten fügen wir ein, was wir vorher hatten, außer dass wir dieses kaufmännische Und-Zeichen entfernen und unser Sternchen hier unten wieder einfügen und unseren Code ausführen. Und jetzt funktioniert es genauso wie zuvor. Also haben wir eine konstante Ganzzahl namens Array-Größe erstellt eine konstante Ganzzahl namens und sie auf drei gesetzt. Dann haben wir ein Integer-Array erstellt und es auf die Größe der Array-Größe gesetzt und ihm drei Werte gegeben. Dann haben wir ein Array von Integer-Zeigern erstellt und es nicht initialisiert. Und dann haben wir eine grundlegende Vier-Schleife erstellt, die einmal pro Element in unserem Array ausgeführt werden sollte . Und wir setzen jede der Adressen für diese Zeiger hier gleich der Adresse der Werte in unserem Array. Dann haben wir eine weitere For-Loop erstellt , die genauso oft ausgeführt wurde wie die hier oben, und wir drucken sie einfach wie gewohnt aus , genau wie wir den Wert eines Arrays ausdrucken würden, dann noch einmal der Hinweis darauf, und nur um uns zu erholen, oder wir fassen auch unsere vorherigen Beispiele zusammen. Lass mich weitermachen und wieder hierher gehen. Also haben wir einfach ein Array erstellt und dann einen Zeiger und die Adresse darin gleich dieser Adresse gesetzt. Im Wesentlichen liegt das daran, dass unser Array-Name hier tatsächlich die Adresse des ersten Elements enthält. Und das war dasselbe, als ob wir das hier gesagt hätten. Okay, also wenn ich meinen Code so ausführen würde, wird das gut funktionieren. C plus plus können wir nun dieselbe Syntax verwenden. Wir würden die Elemente in unserem Array mit unserem Zeiger hier ausdrucken . Okay? Und wenn wir dann zu unserem ursprünglichen Beispiel zurückkehren , wo wir das hier hatten, noch einmal dasselbe, als hier ein Code für den Bin hier. Und es wird alles gleich funktionieren, außer dieses Mal, anstatt die Array-Syntax zu verwenden, erhöhen wir einfach die Position unseres Zeigers und es ist nur ein Element nach dem anderen hochgegangen. Nun hätten wir etwas tun können, um dies umgekehrt wie folgt zu tun. Wir können den Zeiger plus gleich zuweisen , um ihn von hier nach hier zu verschieben, weil er um zwei Stellen nach oben verschoben wurde. Also anstatt bei zehn zu sein und jetzt auf die 50 zu zeigen, was mein Array bei Index zwei ist. Dann hätten wir hier Zeiger minus, minus sagen können und unseren Index bei drei beginnen und dann sagen: Nun, ich bin größer als 0 minus minus, und unseren Code ausführen können. Und jetzt wäre es in umgekehrter Reihenfolge gelaufen. Und tatsächlich sind unsere Induktoren nur um einen ausgeschaltet. Also können wir das beheben, indem wir i2 auf start ändern und sagen: Nun, ich bin größer als negativ. Und Marina es wieder, und los geht's. Also die Adresse meines Arrays bei Index zwei, weil wir dort jetzt angefangen haben, ist die folgende, und der Wert ist 50, dann bekommen wir die Adresse von Index eins und so weiter. Also los geht's. Es gibt einige interessante Interaktionen zwischen Zeigern und Arrays. Wenn Sie neugierig auf unser Array Name sind, das die Adresse des ersten Elements und nicht nur den Wert enthält. Wenn Sie sich an das Video erinnern wo wir ein Array als Argument in einen Perimeter geschickt Argument in einen Perimeter haben , das nahm und es als Referenz übergeben wurde. Und das liegt daran, dass es die Adresse enthält, nicht den Wert. Wie auch immer, das ist es für dieses Video, ich weiß, es waren viele Informationen. Wenn Sie es also nicht vollständig verstanden haben, können Sie es sich gerne noch einmal ansehen oder weitere Informationen zu diesem Thema nachschlagen. Andernfalls machen Sie sich keine Sorgen, wir werden uns während des restlichen Kurses nicht wirklich mit uns befassen. Wie dem auch sei, das war's für das Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 80. Kapitel 14 (Pointers): Hinweise und Hinweise: In diesem Video werden wir über einige der Unterschiede zwischen Zeigern und Referenzen sprechen der Unterschiede zwischen Zeigern , damit Sie wissen, wann Sie welche verwenden müssen. Also lasst uns anfangen. Zunächst werden Referenzen als Aliase für vorhandene Variablen verwendet , während Zeiger zum Speichern von Adressen von Variablen verwendet werden . Außerdem können Referenzen keinen Nullwert haben, Zeiger jedoch schon, und Zeiger können später geändert werden. In einer kleineren Anmerkung benötigen Zeiger, da sie Adressen enthalten, die mit dem Sternchen referenziert werden. Während Referenzen automatisch als Konstante angesehen werden können . Standardmäßig. Betrachten wir nur eine Möglichkeit, eine Referenz als Zeiger zu betrachten , der nicht geändert werden kann. Das ist standardmäßig die Referenz. Und dann hast du es. Hier sind einige grundlegende Unterschiede zwischen den beiden. Und es gibt noch viel mehr, was man mit Zeigern machen kann , die wir nicht einmal angesprochen haben. Sie können beispielsweise Zeiger auf Zeiger haben. Es gibt mehrere andere Container , die wir in diesem Kurs nicht behandelt haben und die Sie verwenden müssen, um mit Zeigern zu arbeiten , und Zeigerarithmetik. Sie können Zeiger verwenden, wenn Sie Dinge mit dynamische Speicherzuweisung ebenfalls. Und aus diesem Grund sind Zeiger viel vielseitiger und ermöglichen Ihnen im Vergleich zu Referenzen einen viel komplexeren Code, um verschiedene Dinge zu tun viel komplexeren Code, um verschiedene Dinge zu tun. Anstatt Ihnen also alle Anwendungsfälle für jeden zu geben, werde ich Ihnen nur sagen, wann Sie generell eine Referenz verwenden sollten , und dann als allgemeine Anmerkung werden Sie Zeiger für alles andere verwenden. Wann sollten Sie also Referenzen verwenden? Nun, im Allgemeinen sollten Sie Referenzen verwenden, wenn Sie mit Funktionsparametern und Rückgabetypen arbeiten , wie wir zuvor gesehen haben. Nun, das kann natürlich variieren je nachdem, mit welchem Datentyp Sie arbeiten, aber dies ist nur ein allgemeiner Hinweis. Ein weiterer guter Zeitpunkt, um sie zu verwenden, ist, wenn Sie mit den ursprünglichen Elementen in einer für jede Schleife arbeiten möchten . Und das kann sich ändern, je nachdem mit welchem Datentyp und Container Sie gearbeitet haben. Das sind also nur einige allgemeine Regeln. Wie gesagt, das kann sich je nach Situation definitiv ändern. Und dann würdest du Zeiger nur für andere Dinge verwenden. Und wir haben nur die Oberfläche von Zeigern berührt und Sie können noch viel mehr mit ihnen machen. Wenn Sie also daran interessiert sind und all das, machen Sie auf jeden Fall Ihre Recherchen darüber. Wie dem auch sei, das war's für dieses Video. Ich wollte nur auf einige Unterschiede zwischen Zeigern und Referenzen eingehen und Ihnen eine allgemeine Vorstellung davon geben , wann Sie Referenzen verwenden sollten. Damit Sie per Proxy wissen, wann Sie stattdessen Zeiger verwenden müssen, tippen Sie auf a. Eine andere Möglichkeit, Referenzen im Vergleich zu Zeigern zu betrachten , ist dies hier. Wie auch immer, ich hoffe dir hat das Video gefallen. Danke fürs Zuschauen und wir sehen uns beim nächsten. 81. Kapitel 15 (Kurse): Einführung in die OOP: In diesem Video werden wir darüber sprechen, was genau objektorientierte Programmierung ist, auch als o p bezeichnet. Bei objektorientierter Programmierung geht es nun darum, objektorientierter Programmierung geht es nun darum Objekte zu erstellen, die beides enthalten Daten und Funktionen, die Objekte der realen Welt darstellen. Diese Art der Programmierung hat mehrere Vorteile gegenüber der prozeduralen Programmierung , bei der es hauptsächlich darum geht, Funktionen zu schreiben , die Operationen an den Daten ausführen , anstatt Objekte oder Klassen zu erstellen. Und wir werden uns nicht zu sehr mit den Details der prozeduralen oder funktionalen Programmierung befassen . Aber ganz schnell, lassen Sie uns einfach über einige der Vorteile der objektorientierten Programmierung sprechen . Zunächst einmal ist objektorientierte Programmierung schneller und einfacher auszuführen. Es bietet eine klare Struktur für Ihre Programme und verhindert, dass Sie sich wiederholen müssen, wodurch der Code einfacher zu pflegen, zu modifizieren und zu debuggen ist. Und der letzte Vorteil , den wir hier erwähnen werden , ist eine objektorientierte Programmierung, die es Ihnen ermöglicht, wiederverwendbare Anwendungen zu erstellen , die mit weniger Code erstellt und entwickelt wurden. Pastor, bis zu diesem Zeitpunkt haben Sie wahrscheinlich gehört, dass ich Objekte und Klassen als dasselbe bezeichne . Und oft hört man, dass Leute das Wort Objekt und Klassen synonym verwenden , aber in jeder Formalität sind es verschiedene Dinge. Denken Sie also daran, wie ich sagte , dass Zusammenbrüche Objekte der realen Welt darstellen , die Funktionen und Daten verwenden. Nun, lassen Sie uns weitermachen und über die Unterschiede zwischen Klassen und Objekten sprechen über die Unterschiede zwischen Klassen und und darüber, was eine Klasse in Bezug auf ein reales Objekt als Beispiel aussehen würde Bezug auf ein reales Objekt als Beispiel und was die Objekte dieser Klasse wären. Und du wirst gleich sehen, was ich hier meine. zum Beispiel Lassen Sie uns zum Beispiel einfach Obst verwenden, einige süße gebrauchte Früchte mit unserem Enum-Beispiel in einem früheren Video. So können wir eine Klasse namens Pro erstellen. Und das ist nicht die Syntax für eine Klasse. So schreibe ich das hier draußen. Das hätte unterschiedliche Datensätze und Funktionen. So haben Sie beispielsweise Daten, die die Süße, Größe und möglicherweise die Samenfarbe darstellen . Er kann hier Funktionen für das Wachstum oder die Lebensdauer der Frucht als Beispiel haben . Und dann hätten wir Objekte, die Fruchtklassen sind, oder Instanzen davon, die diese Variablen und Funktionen erben diese Variablen und Funktionen aber ihre eigene Instanz haben. Einige Beispiele für Objekte unserer Fruchtklasse , die wir haben könnten, wären Dinge wie ein Apfel oder eine Banane, eine Orange, Trauben usw. Im Wesentlichen wäre unsere Obstklasse also wie die Blaupause für alles was davon erbt. Oder wenn a eine Instanz davon ist. So hätte Apple zum Beispiel eine Süße der Größe, eine Sitzanzahl und eine Lebensdauer. Und was unsere Banane und unsere Orange und unsere Trauben usw. Das definiert irgendwie, was eine Frucht ist und Objekte unserer Klasse sind, sind Beispiele für die Blaupause , die in unserer Klasse definiert ist. Eine andere Sache, die hier erwähnt werden sollte, obwohl wir dieses Beispiel geschrieben haben, da obwohl wir dieses Beispiel geschrieben haben, da ein Apfel eine Frucht und eine Banane eine Frucht wäre, und so weiter. Aber ein Apfel ist nicht unbedingt eine Banane. Die Banane ist nicht unbedingt eine Orange, da jede von ihnen für sich anders wäre, aber in diesem Fall wären alle eine Frucht. Wie dem auch sei, hoffentlich macht das alles Sinn. Ich weiß, dass es eine Art Information war , die man auf einmal aufnehmen musste. Aber wenn nicht, werden wir eine Arbeit mit Klassen schaffen und sie Stück für Stück aufteilen, genau wie wir es bei Funktionen getan haben. Also mach dir keine Sorgen, bleib dran. Danke fürs Zuschauen. Und wir sehen uns im nächsten. 82. Kapitel 15 (Kurse): Erstellung eines Kurses: In diesem Video erstellen wir unsere allererste Klasse. Wenn Sie sich also erinnern, ist eine Klasse ein benutzerdefinierter Datentyp , der sowohl Daten als auch Funktionen enthält, die als Member bezeichnet werden. Und diese Mitglieder bilden eine Blaupause für Objekte oder Instanzen unserer Klasse. Im vorherigen Video haben wir über Obst gesprochen und dann über verschiedene Fruchtnamen für die Objekte gesprochen. Ein anderes Beispiel wäre, wenn wir eine Klasse namens Autos hätten , die die Variablen wie Marke, Modell und Jahr enthält. Und dann haben wir vielleicht Funktionen, um vorwärts, rückwärts, neutral zu fahren und so weiter. Und dann sind die Objekte unserer Klasse die Beispiele dafür, dass es sich um verschiedene Fahrzeuge handelt. Sie hätten jeweils ihr eigenes Modell und Jahr und hätten auch ihre eigenen Instanzen der Funktionen für Reisen. Hoffentlich ergab das Sinn. Wenn nicht, erstellen wir hier gleich ein Beispiel für eine Klasse. Aber bevor wir das tun, habe ich hier einige Enums, einen anderen benutzerdefinierten Typ , mit dem wir gearbeitet haben. Und der Grund, warum ich diese hier habe , um Ihnen die Ähnlichkeiten mit der Syntax zum Erstellen zu zeigen , ist die Arbeit mit einer Klasse, auf die wir gleich hier eingehen werden. Und nur um Ihnen ein paar zusätzliche Dinge mit Enums zu zeigen, jetzt wo Sie ein bisschen mehr Programmierkenntnisse haben. Wenn Sie sich erinnern, haben wir gerade genug Kollegen mit dem Namen unseres Enums gesagt . Und dann hatten wir in geschweiften Klammern tatsächlich die verschiedenen Enum-Werte. Und dann, in der Vergangenheit, haben wir einfach verschiedene Variablen unseres Enum-Typs erstellt , indem wir unseren Datentyp , der unsere Enum war, gefolgt vom Namen der Variablen gesagt , der unsere Enum war, gefolgt vom Namen der Variablen und ihn dann auf einen Wert gesetzt unsere möglichen Werte dort. Aber ein paar Dinge , die ich dir nicht gezeigt wo das Folgende für einen ist, anstatt hier unten eine separate Variable in einer neuen Zeile zu erstellen , wie diese, hätten wir sie einfach nach die geschweiften Klammern setzen können, aber vor dem Semikolon. Sie können also so viele Variablen erstellen , wie Sie möchten, trennen Sie sie einfach durch Kommas. Und so habe ich in diesem Beispiel hier eine zusätzliche Variable namens flavor one und dann auch eine namens flavor erstellt . Und ich initialisiere Flavor One hier unten. Und ich habe einfach die Geschmackserklärung dazu genau hier. Und das oben, ich habe etwas sehr Ähnliches gemacht, außer dass ich den Namen für diesen weggelassen habe, was bedeutet, dass ich später keine Variable so erstellen kann, da ich keine Möglichkeit habe, darauf zu verweisen und unser Code wird tatsächlich so gut laufen. Um Variablen daraus zu machen, musste ich sie danach setzen, wie ich es hier unten getan habe. Sie können sie auch hier oben initialisieren, so. Und ich hätte das Gleiche hier unten tun können. Ansonsten kann ich es auch hier unten initialisieren , wie ich es mit diesem gemacht habe. Wie dem auch sei, ich wollte es dir nur schnell zeigen. Grundsätzlich besteht der einzige Unterschied darin, dass Sie den Namen Ihrer ENM vollständig entfernen könnten, aber denken Sie daran, dass Sie nicht darauf verweisen können. Und dass Sie die Variablen dort in derselben Zeile deklarieren und initialisieren lassen können in derselben Zeile deklarieren und initialisieren , indem Sie sie einfach nach den geschweiften Klammern und vor das Semikolon setzen . Wie auch immer, lass uns weitermachen und das entfernen. Und dann werden wir weitermachen und eine Klasse erstellen oder einfach eine sehr ähnliche Weise erstellt. Die Syntax für eine Klasse lautet also wie folgt. Zuerst sagst du Klasse, gefolgt vom Namen der Klasse. Und dann haben Sie in geschweiften Klammern Ihren eigentlichen Code, oder ich sollte sagen, die Mitglieder dieser Klasse. Und nach den geschweiften Klammern können Sie Ihre Objekte, wenn Sie möchten, dort durch Kommas getrennt haben. Zum Schluss schließen Sie das mit einem Semikolon. Dann hier unten, lass uns weitermachen und eine Basisklasse erstellen. Und was wir tun werden, ist eine Klasse für Tiere zu schaffen. Also sagen wir Klassentiere wie diese in der normalen Namenskonvention für unsere Klasse als CamelCase, beginnend mit einem Großbuchstaben, öffnen und schließen geschweifte Klammern. So drinnen haben wir unsere Mitglieder. Sie könnten also eine ganzzahlige Variable namens age haben. Darunter haben wir dann eine Variable namens height, und wir belassen sie vorerst einfach dabei. Da hast du es also. Wir haben jetzt eine sehr einfache Klasse namens Tiere erstellt. Wir haben zwei verschiedene Datenelemente darin. Ihre Variablen, die sich innerhalb einer Klasse befinden und Ihre Funktionen innerhalb der Klasse werden Ihre Klassenmitglieder genannt. Und manche Leute möchten allen ihren Mitgliedern einen solchen Unterstrich voranstellen. Lassen Sie Sie also wissen, dass dies Mitglieder der Klasse sind und nicht nur reguläre Variablen. Also lasst uns weitermachen und das tatsächlich tun. Und dann, wie gesagt, deklariert es auch verschiedene Objekte genau hier, nach einer geschweiften Klammer und vor unserem Semikolon, wenn wir es wollen. Wir könnten also zum Beispiel ein Hundeobjekt und ein Katzenobjekt haben. Und wenn wir hier einen Code ausführen und Sie sehen, dass das einwandfrei läuft. Natürlich habe ich nichts getan, aber ich wollte Ihnen nur zeigen, dass wir keine Fehler hatten. Und im Moment existiert diese Klasse nur innerhalb unserer Hauptfunktion. Und nach diesem Punkt hier können wir das jedoch tatsächlich so schneiden und es außerhalb unserer Methode platzieren , sodass sein Anwendungsbereich jetzt eher global als lokal ist. Wie auch immer, das ist es für dieses Video. Aber bevor Sie mit dem nächsten fortfahren, möchte ich, dass Sie anfangen, Ihren Code zu speichern. Denn in der kommenden Videoserie werden wir unsere Klasse nur langsam erweitern, werden wir unsere Klasse nur langsam erweitern um sie immer komplexer zu gestalten und uns verschiedene Beispiele für Dinge anzusehen , die wir damit machen können. Also wie gesagt, achte darauf, dass du deinen Code speicherst , damit wir ihn im nächsten Video verwenden können. Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 83. Kapitel 15 (Kurse): Class: In diesem Video erstellen wir Instanzen oder Objekte unserer Klasse. Und bevor wir das tun, werden wir weitermachen und einfach diese beiden Objektdeklarationen entfernen, nur damit wir sehen können, wie das von Grund auf neu gemacht wird. Also lasst uns weitermachen und diese Hunde- und Katzenobjekte entfernen. Und wir werden hier unten zwei verschiedene Objekte oder Instanzen unseres Glases erstellen zwei verschiedene Objekte oder . Denken Sie also daran, dass Objekte Instanzen einer Klassen - oder Objektsyntax sind. Wir sagen unseren Klassennamen, gefolgt vom Namen des Objekts, diesem Kosenamen dort. Und zuletzt ein Semikolon. Also lasst uns weitermachen und zwei Instanzen unserer Klasse erstellen. Und das ist alles, was ich in diesem Video machen werde. Wir werden sagen, sind Tiere der Name unserer Klasse. Und dann sagen wir zum Beispiel Hund. Und folgen Sie dem mit einem Semikolon. Und dann erstellen wir, wenn Sie möchten, auch eine weitere Instanz oder ein anderes Objekt unserer Klasse namens Katzentiere. Und am Ende setzen wir ein Semikolon . Und dann machen wir weiter und machen noch eine Sache, bevor wir dieses Video abschließen. Also hier oben, statt hi, lass uns weitermachen und jedem Tier einen Namen geben. Also sage ich String-Name. Und dann nur um Ihnen schnell etwas zu zeigen, und wir versuchen hier eine Instanz jeder dieser Variablen für unsere Objekte zu erstellen . Und wir können das tun, indem wir Folgendes tun, indem wir in diesem Fall unseren Objektnamen dog gefolgt vom Namen der Variablen sagen , gefolgt vom Namen der auf die wir zugreifen möchten. Sie würden also Hundepunktname sagen und versuchen, ihn hier gleich einer Zeichenfolge zu setzen. Sie stellen fest, dass wir einen Fehler erhalten und das liegt daran, dass der Tiername zugänglich ist. Und wir werden im nächsten Video darüber sprechen, warum. Also sagen Sie, dass Sie sich für das Zuschauen bedanken, und wir sehen uns im nächsten. 84. 83: In diesem Video werden wir über die sogenannten Zugriffsspezifizierer sprechen über die sogenannten Zugriffsspezifizierer oder aus einer anderen Sprache stammen. Möglicherweise haben Sie auch gehört, dass dies als Zugriffsmodifikatoren bezeichnet wird . Jetzt gibt es drei verschiedene Arten, vier Zahlen. Zunächst einmal haben Sie öffentliche und öffentliche Mitglieder von außerhalb der Klasse zugänglich sind. Dann haben Sie private und private Mitglieder die von außerhalb der Klasse nicht angezeigt oder zugänglich sind. Und schließlich haben Sie Schutz , auf den nur vererbte Klassen zugreifen und sie anzeigen können . Und wir werden in einem anderen Video zur Vererbung kommen. Aber das einzige, was ich hier beachten möchte, ist, Klassen standardmäßig private Mitglieder haben. Wenn wir also in der Lage sein wollen, auf diese Mitglieder zuzugreifen, wie unseren String-Namen hier außerhalb der Klasse, müssen wir ihn zugänglich machen, indem wir dies von einer privaten Member-Variablen in ein öffentliches Mitglied ändern einer privaten Member-Variablen und, oder variabel. Und denken Sie daran, denn diese sind Teil der Klasse, sie werden Mitglieder genannt. Und ich werde weitermachen und hier einen Unterstrich vor unseren String-Namen setzen , nur um zu signalisieren, dass es ein Mitglied ist. Und wir werden weitermachen und das auch hier unten ändern. Und wenn Sie sich erinnern, wenn wir mit der Maus darüber fahren, heißt es, dass der Name des Unterstrichs der Tiere zugänglich ist , und das liegt daran, dass er privat ist und nur von innerhalb der Klasse und nicht von außen angezeigt und darauf zugegriffen werden kann . Übrigens können Sie auch Mitglieder der Klasse hören, die als Klassenattribute bezeichnet werden. Nun, wie gehen wir vor und machen diese öffentlich? Nun, es ist ziemlich einfach. Alles, was wir tun müssen, ist über unseren Mitgliedern hier, die wir öffentlich machen wollen , Doppelpunkt, einfach so. Und los geht's. Diese Mitglieder sind jetzt öffentlich. Und wenn wir hier unten schauen, können Sie sehen, dass wir jetzt auf das Mitglied zugreifen können. Jetzt können wir weitermachen und unseren Hund holen. Ich meine, man kann sagen, dass Name so etwas wie Spot ist. Und wir können weitermachen und ihren Hund auch in H geben. Sie können also sagen, dass das Alter des Hundeunterstrichs zwei entspricht, dann können wir jetzt dasselbe für unsere Katze tun. Also können wir Unterstrich, Name, so etwas wie Garfield sagen . Unterstreichen Sie dann, dass Alter gleich vier ist. Jetzt haben wir eine Klasse namens Tiere erstellt, die zwei öffentliche Mitglieder oder Attribute hat , wenn Sie es vorziehen. Eine davon ist eine Zeichenfolge namens Unterstrichname, als Unterstrichalter bezeichnet wird. Und das hätte eigentlich nur eine Ganzzahl sein sollen, kein String. Und dann haben wir hier unten zwei Instanzen oder Objekte unserer Klasse erstellt , indem wir einfach unseren Klassennamen Hallo mit einem Namen dafür, dem Objekt, und einem Semikolon am Ende gesagt Hallo mit einem Namen dafür, haben. Und dann hat jede von ihnen ihre eigene Instanz dieser Variablen, okay, also haben sie jeweils ihre eigenen Versionen. Und um auf diese zuzugreifen, verwenden wir einfach den Mitgliedszugriffsoperator für das Periodensymbol oder den Punkt dort, wenn Sie ihn aufrufen möchten. Wir sagten, Dog Dot unterstreicht den Namen und setzen ihn gleich Spot und Dark Dot h gleich zwei. Dann haben wir hier unten im Grunde dasselbe für die Katze gemacht . Jedenfalls soll dieses Video abgeschlossen werden. Eine weitere Sache, die ich erwähnen möchte , ist , dass wir für diese anderen Zugriffsspezifizierer anpassen und sie so buchstabieren könnten, wie sie hier aufgeführt sind. Also öffentlich oder privat oder wir hätten einfach so schreiben können. Und das hätte gut funktioniert. Aber ich werde weitermachen und das wieder öffentlich machen. Im Moment haben wir also einige öffentliche Mitglieder, aber wir hätten auch private und geschützte Mitglieder erstellen können, wenn wir wollten, indem wir diese einfach danach oder davor einfügen. Also hätten wir z.B. privat sagen und dann einige private Mitglieder darunter haben und das hätte gut funktioniert. So werden Zugriffsspezifizierer verwendet und wie wichtig sie sind. Und ich werde weitermachen und diese Variablen hier eingeben , um sie ein bisschen lesbarer zu machen. Woher wissen Sie nun, welchen Zugriffsspezifizierer Sie verwenden müssen? Nun, genau wie bei der Arbeit mit variablem Gültigkeitsbereich bei der Arbeit mit Zugriffsspezifizierern möchten Sie bei der Arbeit mit Zugriffsspezifizierern die Dinge nur so verfügbar machen , wie Sie sie benötigen. Und das dient nur noch einmal dazu, jegliche Art von menschlichem Versagen zu verhindern. Und normalerweise möchten Sie, dass Ihre Mitglieder so öffentlich sind. Und darauf werden wir in einem späteren Video eingehen. Aber im Moment werden wir weitermachen und von der Öffentlichkeit weggehen , damit wir hier irgendwann darauf zugreifen können. Wie dem auch sei, das war's für dieses Video. Vergiss nicht zu retten, was du hast. Und wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 85. 84: In diesem Video werden wir über Klassenfunktionen sprechen oder wie man eine Funktion innerhalb einer Klasse erstellt. In unserem Fall werden wir also weitermachen und eine Funktion zum Sprechen schaffen . Es ist genau hier in unserer Klasse, wir werden so etwas wie Leere sagen. Und es werden offene und schließende Klammern stehen. Und dann sagen wir in einem Codeblock C raus. Einfach so. Und wir erstellen eine neue Zeile und setzen ein Semikolon am Ende. Und der Sound wird tatsächlich eine String-Variable sein , die als Argument verwendet wird. Wir müssen einen Umkreis dafür schaffen. Also sagen wir Streichersound. Und das wird gut funktionieren. Und das ist der grundlegende Weg, um eine Funktion innerhalb einer Klasse zu erstellen. Sie können es aber auch außerhalb einer Klasse definieren. Die Art und Weise, wie dies gemacht wird, ist der Erstellung eines Funktionsprototyps sehr ähnlich. uns also unten Lassen Sie uns also unten weitermachen und unsere aktuelle Funktion kopieren und einfügen. Um das zu tun, müssen wir ein paar Dinge ändern. Zuerst werden wir die Definition unserer Funktion hier in unserer Klasse loswerden . Und dann setzen wir am Ende ein Semikolon. Und dann hier unten, nach unserem Rückkehrtyp, müssen wir sagen: Tiere Dickdarm, Dickdarm. Wenn Sie sich erinnern, ist dies der Operator für die Auflösung des Bereichs. Und jetzt diese Methodendefinition oder Funktionsdefinition in diesem Teil unserer Tierklasse, und wir haben erklärt, dass es hier eine Sache sein würde. Wenn Sie es also außerhalb definieren möchten, benötigen Sie den Klassennamen gefolgt vom Bereichsauflösungsoperator direkt nach dem Rückgabetyp. Und dann brauchen Sie eine Deklaration die unserem Funktionsprototyp hier oben sehr ähnlich ist, wo Sie nur den Rückgabetyp gefolgt vom Namen, beliebigen Parametern und einem Semikolon am Ende haben. Also musst du jetzt weitermachen und diese Funktion mit unserem Hund und unserer Katze nutzen . Also hier unten, unter unseren beiden Objekten. Lassen Sie uns weitermachen und unsere Funktionsaufrufe eingeben. Also sag Hund, Geschwindigkeit und in Klammern steht Kunst oder was auch immer du willst, aber sie spielen wirklich keine Rolle. Und dann Dumbo, der Katze sagt, sprich in Klammern. Wir sagen, okay, und vergiss nicht das Semikolon am Ende. Und wenn wir unseren Code hier ausführen, können Sie sehen, dass das einwandfrei funktioniert. Und wir können diese Variablen genauso ausdrucken wie jede andere Variable. Wir müssen nur spezifizieren , worauf wir uns beziehen. Also können wir so etwas wie c out, cat, name, die neue Zeile sagen , name, die neue Zeile , und das wird laufen. Also lasst uns weitermachen und hier etwas Code hinzufügen, um unsere verschiedenen Tiervariablen auszudrucken . Und wir können tatsächlich eine Funktion dafür schaffen. Also lasst uns weitermachen und auch diese Funktionsaufrufe entfernen. Und dann sagen wir hier unten jemand wie das Tier. Und dann nehmen wir in Klammern ein Tier. Und unser Klassenname heißt eigentlich Tiere. Und vielleicht benennen wir es um, damit das ein bisschen besser klingt . Und Sie können entweder sehr schnell durchgehen und einfach das S entfernen, oder Sie können mit der rechten Maustaste klicken und hier in Visual Studio auf Umbenennen klicken, es in Animal und Vorschau ändern. Jetzt nimmt unsere Funktion ein Tier und ich nenne dieses Tier einfach, zB dann in geschweiften Klammern hier, wir werden weitermachen und alle Werte hier ausdrucken . Da wir mit einem Tierobjekt arbeiten, können wir tatsächlich alle Funktionen verwenden , die wir normalerweise könnten Wie erstellen wir ein Tierobjekt? Wir können also etwas wie CL, Tiername, Doppelpunkt sagen. Hallo, ich bin eine Mama. Dieser Unterstrichname wie dieser erstellt eine neue Zeile und kann ein Semikolon am Ende setzen. Dann lass uns weitermachen und dieses eine Mal kopieren und einfügen. Und wir sagen CL, Tieralter. Dann wird dies nur in Tier geändert, aber das Alter wird unterstrichen. Und zum Schluss sagen wir C raus. Dann drucken wir den Namen des Tieres. Sagen Sie also den Namen des Tierunterstrichs, einfach so. Und dann sagen wir in Anführungszeichen Leerzeichen, sagt Doppelpunkt. Und ich setze hier ein Semikolon. Und dann unten sagen wir Tier, offene und schließende Klammern und am Ende ein Semikolon. Und dann nehmen wir eine Reihe von hier. Also sagen wir hier unten String, um zu sprechen. Und jetzt zurück in unserer Hauptfunktion Lass uns weitermachen und diese Funktion für jedes unserer Tiere nennen . Also, Pflanzentier. In Klammern steht Hundekomma. Dann erstellen wir unseren String. Also sagen wir, nun, wir setzen allein am Ende ein Semikolon, und dann können wir einfach diejenigen kopieren und einfügen, die sich mit der Katze ändern würden . Und sag: Ja. Und wenn wir hier wieder auf unsere Tierfunktion eingehen , lassen Sie uns weitermachen und ein paar Zeilen erstellen , damit es für jedes Mal, wenn wir das Socialize C out nennen, etwas sauberer aussieht für jedes Mal, wenn wir das Socialize C out nennen, etwas sauberer . und Linie. Dann machen wir einfach weiter und machen das noch einmal so. Und los geht's. Wie dem auch sei, ich zoome hier raus. Ihr könnt euch also den Code ansehen und ihn bei Bedarf kopieren. Und dann müssen wir nur noch eine letzte Sache tun. Und das heißt, erstellen Sie hier einen Funktionsprototyp für unsere Print-Animal-Funktion. Denken Sie also daran, wir müssen diese Zeile hier kopieren, so einfügen und am Ende ein Semikolon setzen. Wenn wir jetzt unseren Code ausführen, los geht's. Du sagtest Tiername als Spot. Tieralter besteht darin, die Frau des Sohnes zu erkennen. Dann haben wir das Gleiche hier unten gemacht. Wie auch immer, das steht für dieses Video bereit. Vergiss nicht zu retten, was du hast. Danke fürs Zuschauen und wir sehen uns im nächsten. 86. Kapitel 15 (Kurse): Kursteilnehmer:innen und Kursleiter: In diesem Video werden wir über Konstruktoren sprechen. Nun, ein Konstruktor ist eine spezielle Methode in C plus plus, die automatisch aufgerufen wird, wenn ein Objekt, ich mache Klasse erstellt wird. Und wir werden uns ansehen, was das ist, ein angemessenes und die Anwendungsfälle dafür. Nun, nur um die Dinge hier oben zu bereinigen, könnte ich weitermachen und unsere Methode hier minimieren , damit ich alles auf dem Bildschirm behalten kann. Und weil wir bereits wissen, was das bewirkt, müssen wir uns momentan nicht wirklich damit anlegen. Und zoomen Sie einfach hier rein. Wisse nur, dass ich immer noch diesen ganzen Code hier habe. Und ich werde es nicht wirklich los. Und ich werde auch einfach weitermachen und hier einen leeren Raum zwischen unserer Hauptfunktion und unserer Tierklasse schaffen zwischen unserer Hauptfunktion und unserer , nur um die Dinge irgendwie getrennt zu halten. Lassen Sie uns nun weitermachen und einen Konstruktor erstellen. Und C plus, außerdem gibt es drei verschiedene Arten von Konstruktoren. Jetzt ist der erste Konstruktortyp, über den wir sprechen werden, der Standardkonstruktor. Und das sieht so aus. Wenn also ein Konstruktor benotet wird, haben Sie den Namen der Klasse. So. Dann haben Sie eine feste Klammer mit potenziellen Umfängen und dann Ihren Codeblock und geschweifte Klammern wie diese. Und so sieht der Standardkonstruktor aus. Und Ihre Klasse wird automatisch diesen Konstruktor haben , wenn Sie keinen eigenen Konstruktor erstellen. Sobald Sie jedoch Ihren eigenen Konstruktor erstellt haben, der Standardkonstruktor nicht mehr vorhanden. Falls ich verwirrt bin, haben Sie sich an dieser Stelle verloren. Lass uns weitermachen und einfach einen Konstruktor erstellen. Ich werde mir ansehen, wie Konstruktoren funktionieren. Red Bull oder eine Speak-Methoden-Deklaration hier, wir werden weitermachen und unseren Konstruktor erstellen. Also sagen wir, dass Tier der Name unserer Klasse ist, offene und schließende Klammern. Dann haben wir unseren Codeblock darunter. Und innerhalb von hier, normalerweise das, was Sie mit dem Konstruktor behandeln möchten initialisieren Sie alle Ihre Mitglieder , damit Sie sie nicht verwenden, bevor sie initialisiert werden, wie dies der Fall ist garantiert, weil der Konstruktor automatisch aufgerufen wird , wenn Sie ein Objekt Ihrer Klasse erstellen. Wenn das hier ist, sagen wir, dass der Name des Unterstrichs gleich 0 ist und dann das Unterstrichalter gleich 0 ist, so. Und weil unser Name eine Zeichenkette ist, wollen wir sie nur zu einer leeren Zeichenkette machen . Das funktioniert also einwandfrei , da es keine Parameter benötigt. Es wird unseren Code hier unten nicht beeinflussen, als wir zum Beispiel unser Hunde- und Katzenobjekt erstellt haben . Wenn wir also weitermachen und unseren Code hier ausführen, können Sie sehen, dass er genauso funktioniert wie zuvor. Aber jetzt definieren wir unseren Konstruktor hier außerhalb unserer Klasse, wie wir es mit der Methode getan haben. Okay, um das zu tun, werden wir kopieren oder konstruieren und es hier unten einfügen, so. Und dann müssen Sie es nur noch oben deklarieren. Also, wenn wir die Definition hier entfernen und nur das haben, was dieser oberen Zeile steht und ein Semikolon wie dieses setzen. Und dann müssen wir hier unten dasselbe tun wie hier. Also sagen wir Tier, gefolgt vom Operator für die Auflösung des Zielfernrohrs. Dann heißt es wieder Tier , was der Name des Konstruktors und auch der Name unserer Klasse, gefolgt von unseren Klammern. Und schließlich unsere Definition dort. Also alles, was wir tun müssen ist im Grunde dasselbe, was wir hier gemacht haben, außer dass wir keinen Rückgabetyp hatten, also setzen wir ihn einfach vor den Konstruktornamen, und das wird gut funktionieren. So können Sie einen Konstruktor entweder innerhalb Ihrer Klasse oder außerhalb davon deklarieren , so wie wir es mit unserer Funktion hier könnten. Eine Sache, die ich erwähnen möchte, ist, dass ein Konstruktor öffentlich sein muss. Und das liegt daran, dass, wie gesagt, ein Konstruktor eine spezielle Methode ist, die ausgeführt wird, wenn Sie ein Objekt der Klasse erstellen. Und da wir unsere Objekte unserer Klasse außerhalb der Klasse erstellen , muss der Konstruktor öffentlich sein. Also vergiss das nicht. Was wäre, wenn wir unserem Konstruktor einige Parameter hinzufügen wollten? Nun, wir haben ein paar Optionen. Erstens können wir sie hier zu diesem Konstruktor hinzufügen, oder wir können sie überladen, genauso wie wir Funktionen überladen können, indem einen anderen Konstruktor mit genau demselben Namen erstellen , der verschiedene Parameter akzeptiert. Aber lass uns weitermachen und einfach die ändern, die wir hier haben. Also was wir tun werden, ist String-Name Komma h zu sagen , einfach so. Und wir werden das unten in unseren eigentlichen Konstruktor kopieren . Und anstatt diesen zunächst nur einen leeren Wert zu geben , lassen Sie uns weitermachen und die Parameter hier eingeben. Wir sagen also, dass der Name des Unterstrichs dem Namen entspricht und das Unterstreichalter dem Alter entspricht. Denken Sie daran, das sind tatsächliche Unterrichtsteilnehmer. Und das sind die Parameter , die wir weitergegeben haben. Und das ist ein weiterer Grund, warum es schön ist , deinen Mitgliedern einen Unterstrich voranzustellen. Lass dich wissen, dass es ein Mitglied ist. Wenn Sie in Zukunft damit arbeiten, müssen Sie sich keine Dinge ansehen. Wenn wir jetzt hier runter gehen, können Sie sehen, dass wir einen Fehler haben. Und das liegt daran, dass der einzige Konstruktor für unsere Tierklasse jetzt zwei Parameter benötigt. Denn wenn Sie sich erinnern, seit wir einen Konstruktor erstellt haben, der Standardkonstruktor, der so ausgesehen hätte existiert der Standardkonstruktor, der so ausgesehen hätte, nicht mehr. Und du könntest was auch immer Cody haben, einer von ihnen hier. Ich könnte also sagen, vielleicht wurde ein neues Tier ausgedruckt oder so ähnlich. Und all dieser Code würde jedes Mal ausgeführt, wenn wir ein neues Tier erstellt haben und diese Parameter verwenden , um diesen Konstruktor speziell aufzurufen , jetzt haben wir nur einen, aber wenn wir überladen, dann müssten wir diese Parameter haben, um diesen hier speziell aufzurufen, wie wir gesehen haben, als wir Funktionen und die Vergangenheit überlastet haben. Wenn wir jetzt wieder hier runter gehen, wenn wir lesen, was dieser Fehler sagt, sobald es keinen Standardkonstruktor für Tier gibt, was bedeutet, dass wir jetzt Parameter benötigen und das beheben können. Ich wie gesagt, überlade das und habe einen , der keine Parameter akzeptiert und genauso aussieht wie die hier. Oder wir können das verlassen und sagen : Hey, wenn du ein Tier erschaffen willst, musst du diese beiden Werte eingeben, und genau das werden wir tun. Also hier unten, alles was wir tun müssen, wenn der Hund zwei Klammern hat und wir dann unsere Parameter einfügen müssen. Also anstatt hier „Spot“ zu sagen, lege ich es einfach hier hin. Meistens sank das Komma Minnesota hierher. Wir stellen es gleich hier hin. Dann können wir das einfach komplett loswerden, da wir das hier bereits getan haben, wenn es initialisiert wird, wird es den Namen des Hundes geben, den wir im Alter des Hundes eingegeben haben, das Alter, dem wir eingegeben, und das wird dasselbe mit unserer Katze machen. Nein, das ändert hier nicht die Variablen im Unterricht. Dies ändert Ihre spezifische Instanz dieser Variablen. So etwas in unserem Fall hier zu tun, ist genau das Gleiche. Also lass uns weitermachen und dasselbe für die Katze tun. Also werde ich eine offene Klammer haben, mit der ich anfange. Und wenn Sie hier sehen, kann ich tatsächlich auf diese Pfeile klicken. Und es wird sagen: Hey, das Tier nimmt einen String-Namen an. Also geben wir einen Namen ein. Ich setze ein R-Komma und setze ein H. Und jetzt, wenn wir unseren Code ausführen, wird er genauso laufen wie zuvor. Und dass es tatsächlich unseren zweiten Konstruktortyp gibt. Wir haben also bereits darüber gesprochen, was ein Standardkonstruktor ist, der im Grunde nur ein leerer Konstruktor ist , der keine Parameter akzeptiert und keinen Code im Konstruktor ausführt erstellt hier als der zweite Konstruktortyp , der als parametrisierter Konstruktor bezeichnet wird. Und ein parametrisierter Konstruktor ist im Grunde genau das, wonach er sich anhört. Es hat einen Konstruktor, der Parameter akzeptiert und vergessen Sie nicht, der Hauptzweck eines Konstruktors besteht darin, Ihren Klassenmitgliedern hier normalerweise einen Anfangswert zu geben. Also los geht's. Dann haben wir einen letzten Konstruktortyp , nennen wir den Kopierkonstruktor. Was ist ein Kopierkonstruktor als eine Funktion, die ein Objekt mit einem anderen Objekt derselben Klasse initialisiert . Schauen wir uns also an, wie das aussieht. Und wir werden uns die detaillierte Version davon unter der Haube nicht ansehen . Und wir werden nicht selbst eine erstellen und standardmäßig nicht erstellen. Das funktioniert in den meisten Fällen einwandfrei. Wie funktioniert das? Nun, wir haben zum Beispiel ein Tier namens Hund, in einem Tier namens Katze. Wir können aber auch eine Instanz unserer Tierklasse haben und sie einfach einer anderen Instanz gleichsetzen , die bereits existiert. Und das wird es im Wesentlichen kopieren. Und hier kommt Ihr Kopierkonstruktor ins Spiel. Wir könnten also sagen, Tier, Katze für Liberale, Katze und Katzenschwanz sind jetzt eine Kopie von Katze. Und dann hier unten können wir das ausdrucken, indem wir Print Animal sagen. Dann sagen wir hier Katze zwei und dann sagen wir ja, okay, und führen unseren Code aus. Und los geht's. Wir drucken es jetzt Hund mit dem Namen Spot H02 aus und es steht Spots sagt was? Weil ich das hier angezogen habe , als es für Garfield dasselbe getan hat als für Katze zwei. Und beachten Sie, dass alle Werte gleich sind, aber es sagt etwas anderes aus, weil wir mit unserer Print-Animal-Funktion ein anderes Argument eingereicht mit unserer Print-Animal-Funktion ein anderes Argument unserer Print-Animal-Funktion haben , das wir in der Vergangenheit erstellt haben Video. Also los geht's. Dies sind die drei verschiedenen Arten von Konstruktoren. Sie haben Ihren Standardkonstruktor , der einfach komplett leer ist und den Sie überhaupt keine Parameter benötigen. Sie haben einen parametrisierten Konstruktor, bei dem es sich um einen Konstruktor mit Parametern handelt. Und dann haben Sie Ihren Kopierkonstruktor, dem, wie gesagt, standardmäßig einer erstellt wurde. Und oft funktioniert das einwandfrei , sodass Sie im Grunde eine Instanz einer Klasse nehmen und eine Kopie davon erstellen können . Und vergessen Sie nicht, dass die Konstrukteure öffentlich sein müssen. Und das wird oft hauptsächlich dazu verwendet, die Mitglieder der Klasse zu initialisieren. Und hier möchte ich nur weitermachen und diese Katze zu Tier hier zusammen mit der dazugehörigen Funktion löschen . Vergiss nicht zu retten, was du hast. Danke fürs Zuschauen und wir sehen uns im nächsten. 87. Kapitel 15 (Kurse): List: In diesem Video werden wir über Initialisierungslisten sprechen . Aber bevor wir das tun, werden wir weitermachen und hier einfach einen Teil des Codes entfernen , den wir für zukünftige Beispiele nicht wirklich benötigen. Also zuerst werden wir weitermachen und hier unsere Drucktiermethode entfernen unsere Drucktiermethode , die ein Tier als Parameter verwendet. Also machen wir weiter und entfernen das einfach komplett. Dann entfernen wir auch R2-Aufrufe für diese Funktion. Und schließlich wird der Funktionsprototyp entfernt. Für. Jetzt haben wir nur noch unsere beiden Tierinstanzen oder Objekte zusammen mit unserer Tierklasse, der Sprechfunktion und unserem Tierkonstruktor. Und vielleicht hast du es auch bemerkt, ich habe hier gerade ein paar Kommentare hinzugefügt, erinnere euch nur daran, was alles ist. Eine Initialisierungsliste ist also das, was Sie verwenden möchten, wenn Sie die Datenelemente in Ihrer Klasse angeben möchten . Zum Beispiel unsere beiden Variablen hier, ein Anfangswert. Also haben wir im letzten Video weitergemacht und das mit unserem Konstruktor hier gemacht. Und so sehen Sie es vielleicht auch in anderen Sprachen, aber in C plus plus ist dies nicht der richtige Weg, um Ihre Mitglieder zu initialisieren. Und dafür gibt es mehrere Gründe. Zum einen können bestimmte Membertypen nicht auf diese Weise initialisiert werden. Es ist auch weniger effizient in Bezug auf die Leistung und verschiedene andere Gründe. Also lasst uns weitermachen und einen Blick darauf werfen, wie man das richtig macht. Wenn ihr euch erinnert, ist eine Möglichkeit, eine Variable zu erstellen, ein Say, int x. Und dann, anstatt ein Gleichheitszeichen gefolgt von einem Wert zu haben, könnt ihr einfach int x sagen. Und dann in Klammern habe den Wert, kann ein Semikolon am Ende setzen. Und das ist genau dasselbe, oder? Der Grund, warum ich Sie an diese Syntaxoption erinnern wollte, ist, dass wir etwas sehr Ähnliches verwenden werden , wenn wir die Mitglieder und unsere Klasse hier mit einer Initialisierungsliste initialisieren . Wie auch immer, lass uns weitermachen und einen Blick darauf werfen , wie man eines erstellt. Also genau hier in unserem Konstruktor, alles, was wir hier am Ende dieser Klammer tun müssen, sage ich Doppelpunkt und dann Unterstrich Name, zum Beispiel, weil dies die Variable oder das Element ist , das wir wollen initialisieren. Und dann können wir in Klammern einfach den Parameter setzen , den wir eingeben werden. Also setzen wir es gleich dem Namen, einfach so, dann waren alle anderen Mitglieder getrennt mit einem Komma, also sagen wir Komma unterstreichen Alter und dann in Klammern, gleich dem Alter, verweilen Sie hier auf ihrem Parameter, und das ist so ziemlich alles. Das hier wird also im Wesentlichen dasselbe tun, was wir hier getan haben, ist, dass wir diesen Code und unseren Codeblock hier entfernen können . Und auch das räumt die Dinge auf. Nehmen wir an, wir hatten hier eine Menge Mitglieder, anstatt sie hier in unserem Codeblock initialisieren zu müssen und x gleich 0, y gleich 0, z gleich 0 zu haben, und so weiter ist jetzt einfach alles hier oben aus dem Weg . Und alles in unserem Codeblock ist tatsächlicher Code, wir zusätzlich zur Initialisierung unserer Mitglieder ausführen möchten den wir zusätzlich zur Initialisierung unserer Mitglieder ausführen möchten. Das ist also der richtige Weg, um Mitglieder in Ihren Klassen zu initialisieren. Und du solltest es jedes Mal so machen. Du musst also nicht darüber nachdenken, wann ich es so mache und wann mache ich es andersherum? Ich mache das immer so. Und denk daran, das zu tun. Alles was Sie tun werden, ist nach Ihren Klammern und einem Doppelpunkt gefolgt vom Mitglied. Und in Klammern haben Sie den Wert, auf den Sie ihn setzen möchten. Und dann trennen Sie es für jedes zusätzliche Mitglied, das Sie initialisieren möchten , einfach durch ein Komma wie dieses. Jetzt muss das keinen Perimeter mehr benötigen. Wir könnten es dem gleichstellen, was wir wollten. Aber in diesem Fall, da wir Parameter und unseren Konstruktor hatten , die erstellt wurden um diese Werte zu initialisieren, haben wir einfach unsere Perimeternamen verwendet. Eine letzte Sache, die ich beachten möchte , ist, dass diese in genau derselben Reihenfolge sein müssen genau derselben Reihenfolge Ihre Mitglieder in Ihrer Klasse aufgeführt sind. Also weil unser Name zuerst kommt und wir dann unsere Ganzzahl für Alter haben und initialisiert werden müssen. Genaue Reihenfolge. Dies ist unglaublich wichtig, da es sich um mehrere Fehler handelt , die auftreten können , wenn Sie diese nicht in der richtigen Reihenfolge ausführen. Stellen Sie also sicher, dass Sie es immer in der richtigen Reihenfolge tun so wie Sie es hier von oben nach unten haben. Und jetzt, wenn wir unseren Code ausführen, können Sie sehen, dass er ohne Fehler einwandfrei lief. Und in unserem Konstruktor hier fügen wir einfach Code hinzu, fügen wir einfach Code hinzu auszudrucken, wann ein Tier erstellt wurde, und die darin enthaltenen Variablen anzugeben. Also sagen wir, CL und Animal wurden geschaffen. Das Folgende. Merken Sie sich Attribute als einen anderen Namen, den Sie möglicherweise für die Mitglieder oder Variablen in Ihrer Klasse sehen . Und dann Zeilen wie diese. Und dann sagen wir hier unten Name, Doppelpunkt. Wir werden das mit mir besprechen. Und wir hätten hier auch den Namen eines Unterstrichs setzen können. Es wird wirklich keinen Unterschied machen. Und danach werden wir auch eine neue Linie erstellen. Und darunter steht dann Seitenraum wie dieser. Und wir verfolgen das mit h. und danach werden wir auch eine neue Zeile erstellen. Und nur um Ihnen zu zeigen, dass es keinen Unterschied macht, setzen wir das Unterstreichungsalter für diesen. Und wenn wir unseren Code hier ausführen, können Sie sehen, dass er einwandfrei funktioniert hat. Und wenn wir das ein wenig bereinigen wollen, können wir hier ein paar zusätzliche Leerzeilen erstellen . Und los geht's. Und ich werde einfach weitermachen und das auf unseren Parameternamen zurücksetzen, Alter sein. Wie auch immer, das war's für dieses Video, Sie wissen jetzt, wie Sie Mitglieder in Ihrer Klasse richtig initialisieren Da es sich um eine Initialisierungsliste handelt, die Sie zusammenfassen müssen, alles, was Sie tun müssen, ist am Ende Ihres Konstruktors hier, direkt nach der Klammer, setzen Sie einen Doppelpunkt gefolgt von jedem Element in der Reihenfolge und in Klammern haben Sie den Wert, auf den Sie jedes von ihnen setzen werden in der Reihenfolge und in Klammern haben Sie den Wert, auf den Sie jedes von ihnen setzen n. Sie können dies für jeden einzelnen Konstruktor tun , den Sie haben. Denn wenn Sie sich erinnern, können Sie Konstruktoren überladen, was bedeutet, dass wir hier mehrere verschiedene für unsere Tierklasse haben können , die alle den Namen animal haben werden, seit einem Konstruktor hat den gleichen Namen wie die Klasse. Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 88. Kapitel 15 (Kurse): Verkapselung, Abstraktion und Eigenschaften: In diesem Video werden wir über ein paar verschiedene Dinge sprechen . Das erste ist ein Konzept namens Encapsulation, das eines der vier Hauptprinzipien der objektorientierten Programmierung hat . Aber wir werden später in diesem Kurs auch auf die anderen drei Hauptprinzipien eingehen. Und dann die andere Sache, über die wir in diesem Video als Getter und Setter sprechen werden , was uns helfen wird, die Kapselung in die Tat umzusetzen. Was ist Verkapselung? Kurz gesagt, Kapselung ist im Grunde der Prozess des Verpackens oder Kombinierens Daten und Code, der auf diese Daten einwirkt , in einer einzigen Einheit. Und diese einzelne Einheit wäre so etwas wie eine Klasse. Und oft führt dies dazu, dass Ihre Daten hinter Code versteckt werden, der damit interagieren kann. Lassen Sie uns einen Blick darauf werfen, wie Sie das richtig in unsere Tierklasse implementieren können, sowie den Anwendungsfall dafür. So wissen Sie, wann und wie Sie es in Zukunft in Ihre eigenen Programme implementieren können. Also lasst uns darauf eingehen. Das erste, was wir hier oben in unserer Tierklasse tun werden, wir werden weitermachen und eine weitere Ganzzahl namens Gesundheit erstellen . Also gleich unter oder im Alter, lass uns weitermachen und sagen, dass M Gesundheit unterstreicht. Und dann unten in unserem Konstruktor, wir weiter und fügen diese Variable zu unserer Initialisiererliste hinzu. Nachdem wir das Alter mit dem Alter und den Schwerpunkten dort unterstrichen haben, werden wir sagen, dass Komma die Gesundheit unterstreicht. Dann setzen wir dies in Klammern auf 100. Okay? Das wird also nur einen Standardwert von 100 haben, was 100% entspricht oder wie auch immer Sie es betrachten möchten. Jedes Tier wird zunächst 100 Lebenspunkte haben . Und wir werden das nicht einmal als Parameter nehmen. Dies wird nur die Standardeinstellung für jedes einzelne Tier sein, da dies unser einziger Konstruktor ist. Wenn wir derzeit die Gesundheit unseres Hundes hier ändern wollen , können wir so etwas sagen. Hier unten in unserer Hauptfunktion unter dem Ort, an dem wir unseren Hund geschaffen haben, können wir sagen, dass Hundepunkte Gesundheit minus 50 unterstreichen. Und das wird gut laufen. Nichts hindert uns daran, diese Variable in das zu ändern, was wir wollen. Und wenn wir weitermachen und Gesundheit hier ausdrucken, sagen wir C out Dark Dot Health und erstellen einfach eine neue Zeile. Also lasst uns weitermachen und ausdrucken, dass dies die Gesundheit des Hundes war. Wir sagen also, Hunde sind gleichbedeutend mit Alibi oder Hundegesundheit und kreieren eine neue Linie. Wenn wir nun einen Code ausführen, können Sie hey sehen, und Tiere, die mit den folgenden Attributen erstellt wurden, Name ist Spot im Alter von zwei Jahren und die Gesundheit der Hunde war F D. ich werde weitermachen und hier ein paar zusätzliche Leerzeilen hinzufügen . Also sagen wir einfach ein paar Mal M-Linie. Wenn wir unseren Code hier ausführen, ist er etwas lesbarer. Okay? Ordnung, tut mir leid, die Gesundheit der Hunde ist 50. Nun, was wäre, wenn wir weitermachen und aus irgendeinem Grund weitere 50 Gesundheit von unserem Hund abziehen würden? Aber jetzt, wenn wir unseren Code ausführen, können Sie sehen, dass sein Gesundheitszustand 0 ist. Was ist, wenn wir das noch einmal machen? Also lass uns weitermachen und es unten einfügen , einfach so. Nun, jetzt ist dieser Wert negativ 50 und wir möchten vielleicht nicht , dass das für einen passiert. Und selbst wenn wir vergessen haben, in einer Woche zu programmieren, wollten wir nicht, dass unser Gesundheitszustand unter 50 liegt , wenn wir das später ändern wollten. Momentan müssten wir so etwas machen. Zuerst müssten wir alle Zeiten herausfinden, in denen wir die Gesundheit der Hunde verändert haben. Und dann müssten wir das wie ein if-Statement oder so einfügen. Sie sagen zum Beispiel, f dog dot unterstreicht, dass die Gesundheit größer oder gleich 50 ist . Dann wollen wir Folgendes tun. Und dann könnten wir das einfügen. Oder wir könnten sagen, dass Gesundheit weniger als 0 ist. Dann wollen wir einem Hund die Gesundheit gleich 0 setzen. So. Und das würde funktionieren, aber das könnte ziemlich nervig werden. Und wenn wir später etwas anderes damit machen wollten , müssen wir jetzt all diese Spots wiederfinden und sie alle ändern. Noch einmal. Hoffentlich können Sie sehen , dass dies im Laufe der Zeit zu einem wirklich großen Problem werden könnte , insbesondere wenn unser Programm wächst. Und wir könnten mehrere Codeabschnitte haben oder die Gesundheit eines Hundes würde entfernt. Oder wenn wir hier ein Spiel machen, kann es mehrere Dinge geben, die sich auf die Gesundheit unserer Hunde auswirken oder so ähnlich. Was können wir stattdessen tun? Nun, lass uns weitermachen und das vorerst hier lassen. Dann lass uns hier zu unserer Tierklasse gehen. Was wir also tun können, ist ein paar Funktionen für jedes unserer Mitglieder hier zu haben , die Werte zu erhalten bzw. festzulegen. Wir können alle Regeln haben, um sie innerhalb dieser Funktionen zu erhalten und festzulegen. Und wenn wir diese Mitglieder hier nur über diese Funktionen zugänglich machen , dann wissen wir, dass es nirgendwo in unserem Code so etwas geben kann , das die Variable in gewisser Weise ändert . die wir nicht spezifiziert haben. Also lasst uns weitermachen und das tun. Also diese Funktionen , mit denen wir etwas erstellen werden , das Getter und Setter genannt wird. Und bevor wir diese erstellen, machen wir alle unsere Mitglieder hier privat, sodass sie nur innerhalb der Funktionen für unsere Getter und Setter zugänglich sind . Also unten unter unserer Konstruktordeklaration hier sagen wir privaten Doppelpunkt. Wenn Sie sich erinnern, war dies unser Zugangsspezifizierer. Jetzt haben wir unsere öffentlichen Mitglieder und wir haben unsere privaten Mitglieder. Und was wir tun werden, ist all unsere Mitglieder von hier oben zu kopieren . Wir schneiden sie tatsächlich ab und fügen sie dann hier unten ein. Und jetzt sind sie privat und frachtfrei. Anstatt für jedes dieser Elemente einen zu erstellen, sagen wir einfach, dass Name und Alter nicht mehr geändert werden können, sobald das Objekt mit diesen Parametern erstellt wurde. Und so erstellen wir einfach einen für die Gesundheit. Und obwohl wir eine für diese hätten erstellen können, spart uns das nur etwas Zeit und Sie werden eine Vorstellung davon bekommen , wie das funktioniert. Also hier oben werden wir ein paar öffentliche Funktionen schaffen . Eine erste Einstellung der Gesundheit und eine, um Hilfe zu erhalten. Also lasst uns weitermachen und das zuerst tun. Wir sagen Raus. Und dann haben wir in Klammern keine Parameter , denen unser Codeblock folgt. Und was wir sagen werden, ist ein zurückgegebener Unterstrich. Und dann unten wird dadurch eine Funktion zum Einstellen der Gesundheit erstellt . Also sagen wir Void Set Health. Und dann werden wir in Klammern hier tatsächlich einen Streit führen. Also müssen wir hier einen Parameter erstellen und wir sagen int. Und dann wird in unserem Codeblock der Unterstrich Gesundheit gleich sein. Und das ist die grundlegendste Syntax um einen Getter und einen Setter zu erstellen. Und wenn Sie aus einer anderen Programmiersprache kommen, können Sie diese als Eigenschaften erkennen. Aber wie auch immer, dieser obere hier ist unser Getter, weil er den Wert für uns hat und dieser untere hier ist unser Zentrum. Nun, Sie denken vielleicht, wie ist das besser, als wenn wir es einfach veröffentlichen würden? Derzeit ist es das nicht. Aber wir werden uns ansehen, wie dies komplexer werden kann und sich in nur einem Moment als nützlich erweisen kann. Wenn wir jetzt zu unserer Hauptfunktion zurückkehren, können Sie sehen, dass wir einen Fehler haben, der besagt: Hey, Gesundheit ist nicht zugänglich, Gesundheit ist nicht zugänglich und das liegt daran, dass wir sie privat gemacht haben. Was wir jetzt tun müssen, ist Folgendes. Also genau hier müssen wir jetzt sagen: Hunde-Punkte-Set-Gesundheit. Dann setzen wir so minus 50 ein. Und wir fügen das dreimal ein, um das zu replizieren, was wir zuvor hatten. Und dann genau hier, wenn wir die Gesundheit des Hundes ausdrucken wollten, werde ich sagen, dass Hund nicht gesund wird. Und das wird den ganzzahligen Wert für uns zurückgeben. Und jetzt, wenn wir unseren Code ausführen, können Sie sehen, dass dies einwandfrei lief und genauso funktioniert wie zuvor. Und Sie denken vielleicht bei sich: Nun, wie ist das besser? Nun, lassen Sie uns einen Blick auf die Vorteile dessen werfen, was wir gerade getan haben. Wenn wir also wieder zu unserem Tierunterricht hier gehen, möchte ich Ihnen schnell eines zeigen. Beachten Sie zunächst, dass wir hier auf die Gesundheit von Unterstrichen zugreifen können , bevor wir überhaupt erwähnt haben, was Underscore Health ist. Übrigens, ganz schnell, normalerweise, wenn Sie öffentliche Mitglieder und private Mitglieder haben , möchten Sie zuerst die öffentlichen Mitglieder haben , damit jemand, der sich Ihre Klasse ansieht, alle Informationen, die sie brauchen, genau hier. Wie normalerweise sind die privaten Mitglieder wirklich nicht so wichtig, wenn sie sie überhaupt brauchen, und sie sollten in der Lage sein, von hier aus alles zu erzählen , was vor sich geht. Aber wie auch immer, zurück zu dem, worüber ich gesprochen habe, warum können wir darauf zugreifen, wenn das hier unten ist. Und das liegt daran, dass das, was wir hier derzeit haben , wenn es um den Unterricht geht , nicht wirklich so gelesen wird, wie es aussieht und wie es tatsächlich vorgelesen wurde. Was wir also tun werden, um Ihnen zu zeigen, wie es für unser Programm tatsächlich aussieht wenn es unseren Code liest, ist, wir werden einfach diese beiden Funktionen kopieren und sie unten einfügen hier. Und wir fügen sie jetzt einfach ganz unten ein. Und lassen Sie uns auch weitermachen und unsere Sprechfunktion dort unten verschieben. Sorry Konstruktoren zu der Zeit, so. Und jetzt werden wir diese hier oben in unserer Klasse ändern . Lassen Sie mich etwas herauszoomen, damit Sie sehen können, wie Großbritannien diese hier oben in Funktionsprototypen ändert . Also setzen wir ein Semikolon und entfernen dann den Codeblock. Jede dieser Zeilen hier. Und dann hier unten fügen wir unseren Klassennamen hinzu, gefolgt vom Bereichsauflösungsoperator, gefolgt vom Bereichsauflösungsoperator, wie wir es mit unserer Sprechfunktion getan haben. Lassen Sie mich das einfach kopieren und in beide einfügen. So wurde unser Code zuvor tatsächlich gelesen. Deshalb können wir die Variablendeklaration nach unserer Methodendefinition haben nach unserer Methodendefinition , weil sie tatsächlich gelesen wurde. Dort haben wir hier unseren Prototyp oder die Deklaration unserer Funktion und dann die Definition nach dem Ende der Klasse. Das funktioniert also nicht normal. Aber wenn es zum Beispiel um den Unterricht geht , tut es das. Also wollte ich dir nur eine Vorwarnung darüber geben. Sie war nicht besonders verwirrt. Warum hat das funktioniert, da das in der Vergangenheit bei uns nie funktioniert hat. Lassen Sie uns nun einen Blick darauf werfen, wie nützlich diese Getter und Setter tatsächlich sind. Und auch, was wir hier getan haben, indem dieses Gesundheitsmitglied privat gemacht haben und es in diese beiden Funktionen eingekapselt haben. Hier ist ein Paradebeispiel für Verkapselung. Was wir in unserem Setup hier tun können, ist Folgendes. Also nachdem wir gesagt haben, unterstreiche Gesundheit. Gesundheit der Menschen. Wir können auch weitermachen und dafür einen Min- und einen Max-Wert festlegen. Wenn wir jetzt wollten, könnten wir zum Beispiel sagen, dass F unterstreicht, dass die Gesundheit größer als 100 ist. Unterstreichen Sie dann, dass Gesundheit gleich 100 ist. Und darunter könnten wir f sagen, oder wir könnten hier einfach eine andere if-Anweisung erstellen. Also sagen wir weiter und sagen, dass F unterstreicht, dass Gesundheit kleiner als 0 ist. Dann unterstreiche Gesundheit gleich 0, einfach so. Und jetzt, wo irgendetwas die Gesundheit unseres Hundes oder irgendein Objekt oder eine Instanz unserer Tierklasse beeinträchtigt Gesundheit unseres Hundes oder . Also anders, das war der Hund oder die Katze oder ein anderes Tier, das wir jederzeit erschaffen könnten , um die Gesundheit zu beeinflussen, wir müssen jetzt diese festgelegte Gesundheitsfunktion durchlaufen und wir können jeden Code hinzufügen das später ohne unseren Code hier unten zu brechen. Beachten Sie, dass wir uns hier unten mit nichts anlegen mussten, um jetzt einen Mindest - und einen Höchstwert hinzuzufügen, und wir können entweder jederzeit etwas ausdrucken oder die Gesundheit wurde so eingestellt unser neuer Gesundheitswert angezeigt wird, wenn wir wollen es oder was auch immer du tun willst. Und wir müssen hier unten nichts ändern. Da wir diese Getter und Setter haben, ist unser Code viel dynamischer und wir müssen uns nicht um all die Zeiten kümmern, in denen wir versucht haben all die Zeiten kümmern, in denen wir , diese Variable zu erhalten und zu setzen. Außerdem müssen wir uns keine Gedanken darüber machen, dass irgendetwas diese Funktionen umgeht und diese Variable einfach direkt ändert , weil sie privat ist, was bedeutet, dass sie nur innerhalb unserer Klasse verfügbar ist, weshalb unser Funktion hier, die direkt Teil unserer Klasse ist, hat Zugriff darauf, aber so etwas wie diese Hauptfunktion würde es nicht tun. Nach diesen beiden if-Aussagen werde ich nur sagen, dass die maximale Gesundheit 100 entspricht. Und hier unten sage ich Mindestgesundheit 0, nur um uns daran zu erinnern , was die hier tun. Wenn wir nun unseren Code ausführen, können Sie sehen, dass die Gesundheit des Hundes aufgrund dieser zusätzlichen Funktionalität, die wir hinzugefügt haben, jetzt nur noch auf 0 sinkt . Und beachten Sie noch einmal, dass wir nichts ändern mussten, was hier getan wurde. Wie dem auch sei, das war's für dieses Video. Aber lassen Sie uns weitermachen und zusammenfassen, was wir hier gelernt haben. Zum einen können Sie, wenn es um Klassen geht, eine Methode, eine Deklaration und eine Definition vor allen Variablendeklarationen haben Deklaration und eine Definition vor , die sie verwendet , da sie tatsächlich so ausgelesen werden. Abgesehen davon besteht der richtige Weg und die Art und Weise, der richtige Weg und die Art und Weise wie Sie es von nun an tun sollten, um eine Methodendefinition zu schreiben, darin , Ihre Deklaration innerhalb der Klasse und der Definition zu haben Ihre Deklaration innerhalb der Klasse und der . außerhalb der Klasse. Zum einen hilft dies beim Überladen Ihres Codes und in Zukunft, falls er diese Klasse jemals trennt und eigene Header-Datei und CPP-Datei oder C plus Datei erstellt. Das wird die Sache viel einfacher machen. Sie sollten Ihre Definitionen also immer außerhalb der Klasse haben . In der Regel sollte Ihre Klasse also nur Deklarationen haben und außerhalb der Klasse sollten Ihre Definitionen sein. Denken Sie also für die Zukunft daran. Die andere Sache, die wir gelernt haben, ist , wie man einen Getter und einen Setter kreiert. Und obwohl wir bereits wussten, wie man Funktionen erstellt, kennen wir jetzt die Anwendungsfälle zum Erstellen bestimmter Funktionen, zum Abrufen und Setzen privaten Variablen innerhalb unserer Klasse. Und wir lernen auch, wie wir unsere öffentlichen Mitglieder richtig auflisten können, anstatt dass unsere privaten Mitglieder oben öffentlich und unten privat sind. Sie können dies tun, wie Sie es möchten. Dies ist jedoch der richtige und wahrscheinlich am meisten bevorzugte Weg, dies zu tun. Denn wie gesagt, wenn jemand deine Klasse auf der ganzen Linie beim Atmen betrachtet , wenn du dir den Code in deiner Klasse ansiehst, ist es schön, all die öffentlichen Sachen hier oben zu haben weil das normalerweise alles was mir wichtig ist. Und oft sind die anwesenden Mitglieder so etwas wie eine Sache im Hintergrund , die Ihnen vielleicht wichtig ist oder auch nicht. Ich schaue mir das an. Wenn ich die Klasse größer wäre, möglicherweise noch mehr private Informationen durchsucht werden müssen möglicherweise noch mehr private Informationen durchsucht werden, um zu den Dingen zu gelangen, die uns wichtig sind, wenn diese umgekehrt geschrieben wurden. In der Regel sollten Sie also Ihre öffentlichen Mitglieder im Vordergrund haben. Und dann haben wir gelernt, wie man unseren Getter und Setter einsetzt und den Anwendungsfall und einige der Vorteile, die sich daraus ergeben. Das Wichtigste, was Sie mitnehmen müssen, ist die Verwendung der Verkapselung. Sie haben also alle Ihre Deklarationen in Ihrer Klasse und Ihre Definitionen außerhalb davon sind außerhalb davon geschrieben. Und wenn Sie können, sollten Sie Ihre Mitglieder immer privat haben , damit auf sie so zugegriffen wird , dass Sie nicht möchten, dass sie auf der ganzen Linie verlangsamt werden. Sie möchten ändern, wie sie mit ihnen gearbeitet haben. Sie müssen nicht überall in Ihrem Code danach suchen und danach suchen, wie Sie es beheben können, insbesondere bei Fehlern oder ähnlichem. Alles was Sie tun müssen, ist genau hier nachzuschauen. Was wir hier gemacht haben, ist die Arbeit mit zwei der vier Hauptsäulen der objektorientierten Programmierung. Eines ist Behinderung und das andere ist Verkapselung. Und wir werden in einem späteren Video etwas ausführlicher darüber sprechen . Aber sie fassen schnell zusammen, was das sind und wie wir beide üben oder mit ihnen gearbeitet haben. Abstraktion als Methode oder Prozess zum Verbergen unerwünschter Informationen. Als wir unsere Mitglieder nahmen, sind unsere Variablen hier und trafen sie von der Außenwelt oder aus dem Rest unseres Codes, Wir übten Abstraktion. Während die Verkapselung der eigentliche Prozess war dem die Informationen enthalten wurden. Und so arbeiten diese beiden Hand in Hand. Also haben wir die Informationen oder eine vor der Außenwelt verborgene oder den Rest unseres Codes abstrahiert oder eine vor der Außenwelt verborgene oder den Rest unseres , indem diese Mitglieder hier zum Beispiel privat gemacht haben. Und dann haben wir diese Informationen auch in diese Methoden oder Funktionen eingekapselt . Da hast du es also. Wie dem auch sei, das war's für dieses Video. Vergiss nicht zu retten, was du hast. Danke fürs Zuschauen und wir sehen uns im nächsten. 89. 88: In diesem Video werden wir über Erbschaft sprechen. Vererbung wird tatsächlich unsere dritte Säule der objektorientierten Programmierung sein . Diese sind jetzt in keiner bestimmten Reihenfolge. Dies ist zufällig der dritte , über den wir bisher gesprochen haben. Was ist Erbschaft? Nun, es ist die Fähigkeit einer Klasse, Eigenschaften zusammen mit Merkmalen von einer anderen Klasse zu erben oder abzuleiten . Und wir werden weitermachen und ein Beispiel erstellen und uns ansehen. Also lasst uns zuerst anfangen, lass uns weitermachen und ein paar Sachen aus unserem Code entfernen , nur um die Dinge hier oben irgendwie zu bereinigen. Was wir also tun werden ist außerhalb der Erstellung unseres Hundes und unserer Katze, wir bewegen nicht die anderen Codezeilen und unsere Hauptfunktion einfach so. Und dann werde ich auch einfach weitermachen und unseren Setter und Getter minimieren , da wir bereits wissen, was sie tun. Dann werde ich auch weitermachen und unseren Tierkonstruktor minimieren . Dann mache ich weiter und verschiebe unsere Sprechfunktion. Also schneide ich das ganz schnell unten unter unser Zentrum. Dann ändere ich es auch hier oben , wo wir unsere Erklärung dazu haben. Also lege ich das einfach so unten hin. Und los geht's. Im Moment ist das viel weniger Code, den man sich ansehen muss. Was wir also tun werden, ist, anstatt unsere Tierklasse zu haben und dann einfach den Namen für unser Objekt oder eine Instanz davon als Hund und Katze anzugeben den Namen für unser Objekt oder . Marxismus und erstelle zwei Unterklassen und/oder abgeleitete Klassen. Eine für einen Hund, eine für eine Katze, die beide von der Tierklasse erben werden , aber beide haben etwas Einzigartiges an sich. Und das ermöglicht uns alles, was wir als Teil unserer Tierklasse geschaffen haben , in eine andere Klasse zu bringen, ohne es wiederholen zu müssen. Es kann nicht nur zu menschlichem Versagen führen, sondern es macht die Dinge auch unordentlich, wenn wir etwas wissen wie: Hey, jedes Tier wird diese Funktionalität haben und noch etwas anderes. Was wir also tun können, ist einfach einige Unterklassen zu erstellen , die abgeleitete Klassen , die davon erben. Lassen Sie uns hier unten unter unserer Funktionsdefinition beginnen , wir werden Folgendes tun. Wir sagen Klassenhund. Und dann haben wir in unseren geschweiften Klammern unseren Code für unsere Hundeklasse, aber wir wollen nicht nur eine Klasse namens Dog erstellen. Wir wollen, dass es von unserer Tierklasse erbt, weil ein Hund ein Tier ist, und wir haben bereits eine Definition dafür erstellt , was jedes Tier hat. Ordnung, also was wir tun werden, um von unserer Tierklasse zu erben , ist einfach nach dem Namen unserer Klasse, sagen wir Doppelpunkt, gefolgt von einem Zugangsspezifizierer. In diesem Fall sagen wir „öffentlich“. Und darauf komme ich gleich zurück. Und dann der Name der Klasse, die wir von Public Animal erben wollen , einfach so. Und los geht's. Wir haben jetzt eine Unterklasse oder eine abgeleitete Klasse erstellt. Sie hören oft diese synonym verwendeten Wörter, die von unserer Basisklasse oder unserer Superklasse stammen. Sie können also hören, dass dies als Super und Sub oder Base bezeichnet und abgeleitet wird. Warum haben wir hier öffentlich gesagt? Nun, lass es mich dir sagen. Wenn Sie also public vor den Namen der Basisklasse setzen, wird Folgendes passieren. Wenn Sie sich also erinnern, haben Sie drei verschiedene Zugriffsspezifizierer. Öffentlich, geschützt. Und privat. Public macht alle Mitglieder überall verfügbar. Geschützt, macht alle Mitglieder nur in der Klasse und jeder Klasse , die von ihr erbt, verfügbar . Und dann stellt privat alle Mitglieder nur innerhalb der Klasse speziell zur Verfügung. Und so kommt es vor, dass, wenn Sie hier öffentlich sagen, alle Tiermitglieder , die wir öffentlich sind , für unsere Hundeklasse öffentlich sind. Alles, was geschützt wurde, ist für unsere Hundeklasse geschützt. Und alles, was privat war, ist privat für unsere Hundeklasse. Abgesehen davon kann auf private Mitglieder aus einer Basisklasse nicht direkt von der abgeleiteten Klasse zugegriffen werden. Geschützte Mitglieder können, also alles , was privat war , nicht direkt von unserer Hundeklasse aus zugänglich sein. Was würde also passieren, wenn wir, anstatt hier öffentlich zu sagen, dies ändern würden, um es zu schützen? Nun, im Grunde wäre alles, was wir geerbt haben und das öffentlich war, geschützt. Alles, was geschützt war , würde geschützt bleiben. Und alles, was privat war, was privat bleibt. Jetzt schneiden wir im Grunde einfach alles aus, was öffentlich war, und bringen es in der Produktion um eins nach oben. Und wenn wir hier privat sagen würden, wären Mitglieder, die wir geerbt haben, alle privat. Allerdings wären nur die Dinge , die in der Basisklasse privat waren , nicht direkt von unserer Hundeklasse aus zugänglich. Und alles, was privat gemacht wurde, hier privat gestellt wurden, wird jetzt in unserer Hundeklasse privat sein und wie sich das auf uns auswirkt. Wenn Sie etwas verwirrt sind, können Sie von einer solchen Unterklasse erben. Wir könnten eine andere Klasse schaffen, die vom Hund geerbt von Tieren erbt. Und du könntest das immer wieder machen, wenn du es willst. Und genau wie wir andere Klassen haben könnten , die vom Hund erben. Hunde können auch von mehreren Klassen erben. Und um das zu tun, müssten Sie nur ein Tierkomma sagen. Und folgen Sie dem mit den anderen Klassen Sie erben möchten, getrennt durch ein Komma. Und dann würden Sie den Zugriffsspezifizierer an die erste Stelle setzen, noch einmal für jeden einzelnen, und danach den Namen angeben. Also alles, was wir hier haben, müsstest du nach diesem Komma für jede andere Klasse setzen , von der du geerbt hast. So ziemlich einfach. Jetzt werden wir uns nicht mit all den verschiedenen Formen der Vererbung befassen , die Sie in diesem Kurs sehen oder mit denen Sie arbeiten könnten . Aber wisse einfach, dass du von mehreren Klassen erben kannst. Und Sie können sogar von Unterklassen erben. Und Sie könnten sogar von diesen erben , wenn Sie möchten, und die Liste geht weiter. Aber für uns hier werfen wir nur einen Blick auf die grundlegendste Form der Vererbung, eine Klasse zu haben, die von einer einzigen Basisklasse erbt. Also wie auch immer, lasst uns weitermachen und weitermachen. Hoffentlich ergab das alles einen Sinn für dich. Weil wir gesagt haben, dass die Öffentlichkeit alles hört, was öffentlich war, wäre ich in unserer Hundeklasse öffentlich geblieben, weil sie alle unsere Tierklassenmitglieder erbt. Alles, was geschützt war, was wir nicht hatten , wäre geschützt geblieben und alles, was für unsere Tierklasse privat war , ist von unserer Hundeklasse aus nicht direkt zugänglich, weil es privat, nur für diese Klasse hier zugänglich. Und jetzt werden wir einen Konstruktor für unsere Hundeklasse erstellen . Aber eine Sache, die wir beachten müssen , ist, dass jedes Mal, wenn ein Hund erschaffen wird und ein Tier im Hintergrund erschaffen wird. Und wenn Sie sich erinnern, haben wir tatsächlich unseren Standard-Tierkonstruktor losgeworden, der unseren Standard-Tierkonstruktor losgeworden, keine Parameter akzeptiert hat, was bedeutet, dass Animal hier, um eine Instanz eines Tieres zu erstellen, eine Zeichenfolge für ein und eine Ganzzahl für ein Alter. Wie gehen wir also vor und setzen das um? Eine Sache, die wir tun könnten, ist einen Standardkonstruktor zu erstellen , der keine Parameter akzeptiert. Und obwohl das funktionieren würde und es uns ermöglichen einen Hund zu erstellen, ohne irgendwelche Parameter eingeben zu müssen , um unseren Namen h hier zu initialisieren, ist es nicht wirklich das, was wir wollen da dies die Art und Weise umgehen würde, wie wir wir initialisieren unseren Namen und unser Alter, indem wir ihm hier unten einen Namen und ein Alter geben können. Stattdessen könnten wir einfach weitermachen und alle Konstruktoren aus unserer Tierklasse erben, indem wir sagen , gefolgt vom Namen der Klasse, die Tier ist, bis Colin unsere Zielfernrohrlösung ist. -Operator, gefolgt vom Wort Animal und einem Semikolon am Ende. Dies würde dazu führen, alle Konstruktoren zu erben. Wenn wir jetzt herkommen und so etwas wie Hund sagen, kann mein Hund unsere Klammern setzen. Sie können sehen, dass eine dieser Optionen, und übrigens, ich scrolle einfach durch diese und die Abwärtspfeiltasten sagen, dass, hey, wir brauchen jetzt einen Namen und ein Alter, und wir können einfach einen Name und ein Alter, wie wir es in der Vergangenheit getan haben. Das würde gut funktionieren, aber das werden wir nicht tun. Und ich zeige dir gleich warum . Also machen wir weiter und werden das los. Aber so können Sie alle Konstruktoren von Ihrer Basisklasse erben . Stattdessen werden wir Folgendes tun. Wir werden einen neuen Konstruktor für Hunde erstellen , indem wir Hund sagen, Klammern öffnen und schließen. Und dann setzen wir am Ende ein Semikolon , da dies nur unsere Erklärung sein wird. Aber dieser hier wird dieselben Parameter annehmen wie unsere Tierklasse. Also sagen wir Hundename, Komma, int Alter, einfach so. Dann kopieren wir diese Zeile und fügen sie unter unsere Klasse ein , um die Definition tatsächlich zu implementieren. Also treffen wir wie immer auf unsere offenen und geschlossenen geschweiften Klammern. Und dann werden wir hier oben einen Listeninitialisierer für den Konstruktor unserer Tierklasse verwenden . Also sagen wir Dickdarmtier. Und dann werden in Klammern die Parameter eingefügt , die der Tierkonstruktor benötigt. Also nehmen wir diesen Namen als unseren Perimeternamen hier und fügen ihn einfach als den Namen oder die String-Variable für diesen Konstruktor hier oben ein, dann sagen wir Komma h, so. Und wenn Sie sich erinnern, müssen wir hierher zurückkehren und sagen, dass Hund der Name unserer Klasse ist, Doppelpunkt, um anzugeben, dass dies die Definition für dieses Jahr ist. Und jetzt wird alles gut funktionieren. Wenn wir jetzt einen Hund erstellen, ist dies unser einziger Konstruktor für einen Hund und er nimmt einen Namen an und ein Alter, das er jetzt tun wird, ist diesen Namen und das Alter in den Namen und das Alter des Konstruktors einzufügen den Namen und das Alter des Konstruktors für unsere Tierklasse. Und wir werden das alles hier am Ende durchgehen. Sie sich also keine Sorgen, wenn Sie ein bisschen verwirrt sind, folgen Sie einfach. Und was wir dann in unserem Konstruktor machen werden. Und gehen wir zu dem Punkt, an dem wir unseren Tierkonstruktor haben und entfernen einfach den gesamten Code darin so. Wir fügen es hier ein. Und dann sagen wir C raus. Ein Hund wurde mit den folgenden Attributen erstellt: Name, Name, Alter, Alter. Und wenn wir wollten, könnten wir sogar etwas wie c out health sagen. Colon Space 100, da wir wissen, dass unsere Gesundheit dort am Anfang immer 100 sein wird . Dann machen wir einfach weiter und werfen ein Semikolon ein. Und was wir dann tun werden, ist tatsächlich die n Zeilen von hier oben zu kopieren oder sie auszuschneiden, ich sollte sagen, sie hier unten einfügen, oder? Also jetzt, wenn wir einen Hund erstellen, wird es heißen, dass ein Hund mit den folgenden Attributen erstellt wurde . Name ist der Name, den wir bei der Erstellung eines Hundes eingeben. Das Alter ist das Alter, das wir bei der Erstellung eines Hundes angegeben haben, die Gesundheit wird standardmäßig auf 100 gesetzt . Und das liegt daran, dass oben in unserem Tierkonstruktor, wenn Ram hier ist, Gesundheit automatisch auf 100 gesetzt wird. Dann lass uns weitermachen und das alles hier kopieren. Also alles von unserer Hundeklasse bis hin zu unserem Hundekonstruktor und Definition hier. Und füge es unten ein. Und wir sagen Klasse, Katze, ändere es von Hund String-Name ist Cat, String-Name. Und hier unten werden sich diese beiden ändern, Katze auch. Ich würde sagen Katze am Dickdarm, Katze, und wir können den Rest so lassen, wie er ist. Und dann hier unten im eigentlichen Codeblock wird gesagt, dass eine Katze mit den folgenden Attributen erstellt wurde. Und los geht's. Jetzt hier unten, anstatt zwei Tiere zu erschaffen und einen Hund anzurufen, und wenn es sich um eine Katze handelt, lassen Sie uns einen Hund und eine Katze erschaffen. Also lasst uns weitermachen und das entfernen. Und wir sagen Katze. Und wir nennen das vorerst einfach meine Katze. Und dann brauchen wir in Klammern eine Zeichenfolge und dann eine für den Namen und eine für das Alter. Also nennen wir das noch einmal Garfield. Und wir setzen das Alter auf zwei fehlende Kommas. Setze kein Semikolon am Ende. Beachten Sie genau hier, dass cat, cat oder der Konstruktor für Cat an Zeile 81 nicht zugänglich ist. Und das liegt daran, dass wir unseren Konstruktor nicht veröffentlicht haben. Denken Sie daran, dass Mitglieder des späten Unterrichts standardmäßig privat sind. Konstrukteure müssen öffentlich sein, damit sie arbeiten können. Also sagen wir einfach öffentlich. Setzen Sie also am Ende einen Doppelpunkt ein, und ich werde das einfach einrücken, um es ein wenig lesbarer zu machen , und wir machen dasselbe für unseren Hund. Also hier oben sagen wir Public Colon. Dann gebe ich das ein, um es lesbarer zu machen. Und los geht's. Jetzt ist der Fehler weg. Für wen sind alle bereit zu gehen? Dann unten, wenn ich meinen Katzenpunkt sage , merke, dass ich die Gesundheit bekommen kann, weil ich Zugang zu dieser öffentlichen Funktion habe. Und ich kann die Gesundheit festlegen, weil wir auch Zugang zu dieser öffentlichen Funktion haben. Und wir können auch sprechen, was die Funktion ist, die wir hier oben erstellt haben, um einfach die von Ihnen eingegebene Zeichenfolge auszudrucken. Also lasst uns weitermachen und uns ein bisschen damit anlegen. Also sagen wir, meine Katze ist gestorben. Stellen Sie Gesundheit ein. Und wir sagen einfach so etwas wie zehn und setzen am Ende ein Semikolon. Und das wird unsere Gesundheit auf zehn setzen. Denn wenn Sie sich an unsere Funktion hier erinnern, nimmt SAT Health einfach die von Ihnen eingegebene Gesundheitsmenge und setzt sie gleich. Und wenn wir gewollt hätten, hätten wir eine Funktion schaffen können, um die Gesundheit um einen bestimmten Wert zu verändern. Und lass uns einfach weitermachen und das schnell machen. Also hier oben werden wir eine neue, eine weitere Funktion schaffen, um die Gesundheit zu verändern. Willst du Leere sagen, ändere Gesundheit. Und wir nehmen Gesundheit in die Hand. Einfach so. Ich setze kein Semikolon am Ende. Dies wird eine Changer-Funktion für Hilfe sein. Okay, ich werde diesen Kommentaren hier nur ein bisschen hinzufügen. Sie haben also einen Getter für Gesundheit, einen Setter und einen Wechsler. Und wenn wir diese Deklaration hier kopieren und dann hier runter gehen, werde ich weitermachen und unsere Zellfunktion für einen Moment minimieren unsere Zellfunktion für , ebenso wie unsere Sprechfunktion. Und im Grunde zwischen unserer eingestellten Gesundheitsfunktion in der R-Sprechfunktion. Ich mache einfach weiter und füge das ein. Dann erstellen wir eine neue Funktion wie diese. Und hier drin kopiere ich den gesamten Code für unsere Set L-Funktion und füge ihn hier ein. Und jetzt sagen wir, dass Gesundheit gleich Gesundheit ist, dann können wir den Rest verlassen. diese Weise können wir sagen, dass wir Gesundheit ändern und dann entweder einen positiven oder einen negativen Wert einfügen und diesen direkt unserem Gesundheitsmitglied hinzufügen . Und beachten Sie, dass wir diesen Fehler haben , es sei denn , wir müssen ihn hier noch direkt vor unserem Funktionsnamen hinzufügen . Und das wird diesen Artikel klären. Dann werden wir weitermachen und diese minimieren. Und wenn wir jetzt hier runter gehen, können wir so etwas wie meine Katze sagen, gesund werden, um unseren Gesundheitswert zu ermitteln. Und wir werden weitermachen und das ausdrucken. Also sagen wir CL-Gesundheit, dann können wir weitermachen und etwas wie meine Katze sagen, Gesundheit ändern und wir werden sie um negative 15 ändern. Sagen wir einfach, unsere Katze wurde verletzt oder so ähnlich. Dann drucken wir uns wieder Gesundheit aus. Also sagen wir einfach C raus, meine Katze ist gestorben. Keine. Lass uns auch weitermachen und einen Hund erschaffen. Also unten hier und wir sagen Hund. Mein Hund wird seinen Namen in Spotty ändern. Und es ist 23 Jahre alt. Ich setze am Ende einfach ein Semikolon. Und lassen Sie uns auch weitermachen und hier ein paar Leerzeilen hinzufügen . Sagen wir also in Zeile und Zeile so und führen unseren Code aus. Und wie Sie sehen können, sieht es tatsächlich ein bisschen komisch aus. Also lasst uns weitermachen und das ganz schnell beheben. Also hier oben in unserem Hunde- und Tierkonstruktor müssen wir eine N-Linie nach H und eine nach Alter und Katze setzen . Wenn wir unseren Code jetzt schnell erneut ausführen, können wir den Teil sehen, der repariert wurde. Jetzt haben wir nur noch diese seltsamen Hundert85 hier. Und die Änderung, die Sie tun müssen, ist hier etwas Text hinzuzufügen. Wir könnten so etwas wie C out sagen. Garfield. Gesundheit ist Dickdarmraum. Wir fügen einen weiteren Einfügeoperator wie diesen hinzu. Und dann werden wir das einfach abschreiben. Und schließlich wird nur eine leere Zeile erstellt nachdem wir sagen, dass Garfield Gesundheit ist das erste Mal hier. Also am Ende der zweiten Zeile und führe einen Code aus, und los geht's. Nun wurde eine Katze mit den folgenden Attributen namens Garfield H2, Health 100, erstellt . Garfield ist Gesundheit bei 100. Dann haben wir es mit unserer Change-Health-Funktion geändert, auf die wir zugreifen konnten, indem wir hier einfach den Namen unserer Instanz oder unseres Objekts verwendeten hier einfach den Namen unserer Instanz oder unseres Objekts da diese Funktion öffentlich war. Und dann konnten wir uns damit anlegen, dass das private Mitglied die Gesundheit der Tierklasse ist, aus der wir stammen, weil wir diese Getter und Setter zur Verfügung hatten. Und dann haben wir seine Gesundheit ausgedruckt, wieder 85 Jahre alt, da wir gerade 15 davon genommen haben, haben wir gerade einen Hund geschaffen , der dasselbe getan hat. Wenn wir einen Hund ausdrucken , der mit den folgenden Attributen den Namen spotty age 300 erstellt hat. Also los geht's. Wie auch immer, ich weiß, dass das eine Menge war, die wahrscheinlich aufgenommen wurde. Also lass uns einfach zurückgehen und unseren gesamten Code hier schnell durchgehen. Also werde ich weitermachen und hier ein wenig herauszoomen und alles minimieren , was wir bisher haben. Also lasst uns weitermachen und es von oben nehmen. Wie ich weiß, arbeiten wir schon ganze Weile mit diesem Code wie wir gelernt haben, und fügen ihn Schritt für Schritt hinzu. Also haben wir eine Klasse namens animal erstellt, dann geben wir ihr einige öffentliche und private Mitglieder. Lassen Sie uns jetzt mit einem privaten Mitglied beginnen. Also zuerst sagten wir im Wesentlichen, dass jedes Tier einen Namen haben wird. Wir werden das in einer Zeichenfolge speichern. Sie werden ein Alter haben, in dem eine Ganzzahl und ein Gesundheitswert gespeichert werden . Es wird auch in einer Ganzzahl gespeichert. Und jedes Mal, wenn ein Tier erschaffen wird, werden wir diese Werte initialisieren. Und das haben wir mit unserem Konstruktor gemacht Wenn Sie sich erinnern, gibt es nur eine Funktion , die automatisch aufgerufen wird , wenn ein Tier sie erstellt hat. Dazu verwenden wir hier unseren Tiernamen, gefolgt von einigen Parametern, die wir berücksichtigen wollten, in der Definition dafür, die wir hier unten haben. Es führt also keinen Code alleine aus, aber es benötigt eine Zeichenkette und eine Ganzzahl, eine für unsere Namensvariable in einer für die Altersvariable. Und wir haben hier eine Initialisierungsliste mit diesem Doppelpunkt verwendet, gefolgt von jedem Mitglied, das wir in der richtigen diesem Doppelpunkt verwendet, gefolgt von Reihenfolge setzen wollten. Also sagte er, dass der Unterstrichname unser Mitgliedsname ist, sie werden gleich dem Namen oder dem Argument gesetzt , das für diesen Parameter übergeben wurde. Dann haben wir dasselbe für H gemacht, genau hier. Und schließlich haben wir jedes Mal einen Gesundheits- und Anfangswert von 100 angegeben , wenn wir für diesen keine Benutzereingabe vorgenommen haben. Hier. Ich werde weitermachen und das jetzt minimieren. Dann haben wir einen Getter für Gesundheit geschaffen, oder einfach nur eine Funktion , die es uns ermöglichte, den Wert unserer privaten Gesundheitsvariablen zu ermitteln. Und das sollte es so einkapseln, dass es nur innerhalb der von uns festgelegten Grenzen bearbeitet werden kann , weshalb wir einen Getter und Setter dafür haben, sowie diese Änderungsmethode, die wir gerade hinzugefügt haben. Also lasst uns diese jetzt durchgehen. Gesundheit bekommen nimmt also keine Parameter an. Alles, was es tut, wird an den Aufrufer oder den Code zurückgegeben , der diese Methode AND OR-Funktion aufruft. Sie geben also eine Ganzzahl zurück, weil unser Gesundheitsmitglied eine Ganzzahl ist und nur Gesundheit zurückgibt. Wenn Sie also wissen möchten, was Gesundheit ist, können Sie diese Funktion aufrufen und wir geben sie Ihnen. Und wir hätten jeden anderen Code hier reinwerfen können, den wir wollten, aber das war nur eine grundlegende Rinne , für die wir uns entschieden haben. Dann haben wir eine weitere Funktion zur Einstellung der Gesundheit. Dadurch kann die Farbe einen beliebigen Gesundheitswert einfügen und wir setzen Gesundheit gleich. Wie auch immer wir hier einen zusätzlichen Code eingeben, um zu sagen : Hey, wir werden eine maximale Gesundheit und eine minimale Gesundheit haben . Also, wenn die Gesundheit, nachdem sie auf das gesetzt wurde, was der Benutzer hier eingegeben hat, größer als 100 ist. Hey, wir machen weiter und legen die 200 zurück. Und wenn es kleiner als Null ist, setzen wir es auf Null. Dann haben wir gerade diese neue Funktion namens change health erstellt , mit der die Farbe den Gesundheitswert um die Menge ändern kann, die sie eingegeben hat. Also senden sie unsere Funktion hierher, eine Ganzzahl, und wir fügen diesen Wert zur Gesundheit hinzu. Und das hätte eine negative oder eine positive Zahl sein können, und sie würde hinzugefügt werden. Dann dasselbe. Wir sagten: Hey, wenn Gesundheit jetzt größer als 100 ist, setzen wir sie auf 100 zurück und Gesundheit ist kleiner als Null, wir setzen sie auf Null. Und wir hätten hier jeden zusätzlichen Code eingeben können, den wir wollten, damit wir ihn tatsächlich wieder auf die Benutzergesundheit ausdrucken können, war das, Andrew wurde in diesen oder was auch immer wir wollten geändert, aber wir haben gerade eine erstellt Grundfunktion um die Gesundheit um was auch immer zu ändern und dann sicherzustellen, dass sie nicht das Maximum, das wir wollen, und die Mindestmenge, die wir wollten, überschritten hat. Wir hätten auch einige Getter und Setter für den Namen und das Alter schaffen können. Aber wir haben das hier nur der Einfachheit halber gemacht. Und schließlich haben wir eine letzte Funktion für unsere Tierklasse, die es einfach jedem Tierobjekt ermöglicht, sprechen zu sagen, zusammen mit dem Einfügen einer Zeichenfolge. Und es wird einfach diesen Sound dort ausdrucken. Und vielleicht kommen wir sogar darauf zurück und machen in einem späteren Video mehr damit. Wie dem auch sei, hoffentlich hat das alles Sinn für dich ergeben. Lass uns weitermachen und es auf unsere Hundeklasse übertragen. Und wir werden die Katzenklasse einfach ignorieren , da sie im Wesentlichen genau dieselbe sein wird. Also sagten wir, Klassenhund wird von Klassentieren erben und allen Mitgliedern, die wir geerbt haben, wollten wir genau auf die gleiche Zugänglichkeit wie zuvor verlassen . Also blieben alle privaten Mitglieder privat. Wir erhalten jedoch keinen Zugriff auf sie, da private Mitglieder nur innerhalb der Klasse verfügbar sind , in der sie erstellt wurden. Aber wir erhielten Zugang zur Öffentlichkeit und zu geschützten, und sie blieben hier öffentlich und geschützt. Und wie schützen wir uns? Die gesamte Öffentlichkeit wäre geschützt worden. Und wie setzen wir privat? Alles wäre vorher gemacht worden. Aber denken Sie daran, dass wir Zugriff auf diese Variablen gehabt hätten , mit Ausnahme derjenigen, die ursprünglich privat von Animal waren . Damit meine ich zum Beispiel, wenn wir vor dieser öffentlichen Funktion für Tiergesundheit gesagt hätten, öffentlichen Funktion für Tiergesundheit wäre jetzt hier im Wesentlichen das gewesen , was gerade privat gemacht wurde. Okay. Wie dem auch sei, wir haben die Mitglieder einfach verlassen, während sie arbeiten. Und dann haben wir weitergemacht und hier öffentlich gesprochen und einen Konstruktor für Hunde geschaffen. Um das zu tun, sagten wir Hund gefolgt von einigen Parametern. Also haben wir einen Namen und ein Alter angenommen, die dem entsprechen, was unser Tier hier angenommen hat. Okay. Das liegt daran , dass jedes Mal, wenn at dog erstellt wird, ein Tier im Wesentlichen auch erstellt wird, weil ein Hund ein Tier ist und weil wir keinen Standardkonstruktor hatten, der nichts akzeptiert. Wir brauchen einen Konstruktor, der dem einzigen verfügbaren Konstruktor für anima entspricht. Und denken Sie daran, wir hätten mehrere Konstruktoren für Tiere und mehrere für Hunde erstellen können, aber wir haben es einfach so gemacht. Ich kann sicherstellen, dass jedes Mal, wenn ein Douglas ein namenloses Gegebenes geschaffen hat und ein Alter angegeben wurde, und wir hätten so viele Dinge einsetzen können, wie wir wollten. Wir hätten einen Namen und ein Alter, eine Rasse oder ähnliches in unserem Tierkonstrukteur in London eintragen können. Das gleiche hier, aber der Einfachheit halber haben wir es einfach so gemacht. Und dann haben wir eine weitere Initialisiererliste erstellt , um den Konstruktor im Wesentlichen für Tiere direkt von hier aus aufzurufen den Konstruktor im Wesentlichen für . Welcher Name und welches Alter auch immer bei der Erstellung eines Hundes eingefügt wurden, wird jetzt in den Namen und Alter unseres Tierkonstruktors eingefügt. Denn wie gesagt, jedes Mal, wenn ein Hund erschaffen wird, wird ein Tier erschaffen und wir haben es einfach direkt so gemacht. Aber wie wollen wir das bei allen technischen Aspekten? Wir hätten nichts nehmen können, ein Hund erstellt wurde, eine Variable namens string , name, gleich spot und einfach Santa in jedes Mal, wenn ein Hund erstellt wurde, eine Variable namens string, name, gleich spot und einfach Santa in unseren Tierkonstruktor erstellen können. Dann haben wir einfach ein paar Sachen ausgedruckt. Und das ist ziemlich selbsterklärend. Wir haben schon einmal mit Funktionen gearbeitet, okay, und dann haben wir genau dasselbe für Cat gemacht. Offensichtlich hieß diese Klasse Katze und wir sagten, ein unzähliger benoteter Hund anstelle eines Hundes, Was wird bewertet? Und schließlich, wenn wir hierher kommen, haben wir eine Katze namens My Cat erschaffen, und wir gaben ihr den Namen Garfield und ein Alter von zwei Jahren. Dann haben wir Garfield is health is health is out ausgedruckt und dann die Getter-Funktion benutzt, richtig? Und wir konnten direkt von meiner Katze aus darauf zugreifen , weil sie ein öffentliches Mitglied war. Und als wir es geerbt haben, war es immer noch so , dass die Öffentlichkeit einfach darauf zugreifen und den Gesundheitswert erhalten konnte. Dann haben wir diese Gesundheit geändert, weil dies auch eine öffentliche Veranstaltung war auch eine öffentliche Veranstaltung und sie erneut ausgedruckt, als wir hier unten gerade eine Dunkelheit geschaffen haben. Also los geht's. Nur um dir hier etwas zu zeigen. Wenn ich hier zu unserem Katzenunterricht gehen und das öffentliche Tier wechseln würde , um das Tier zu schützen und zu versuchen, unseren Code auszuführen. Sie werden sehen, dass wir einen Fehler bekommen. Und das liegt daran, dass jetzt diese Funktionen, eine Katze betrifft, geschützt sind, denn das ist die Klasse, mit der wir arbeiten, ist geschützt, was bedeutet, dass sie für nichts verfügbar sein wird außer sich selbst und allen Klassen, die davon erben oder von ihm ableiten. Wenn wir privat gesagt hätten, hätte es diese Funktionen für Cat privat gemacht , und sie wären uns hier überhaupt nicht zur Verfügung gestanden. Okay. Ich wollte Ihnen nur zeigen, wie das dort funktioniert, da uns ein vernünftiges Beispiel zur Verfügung stand. Und so habe ich das jetzt wieder öffentlich gemacht, in unserem Code funktioniert es wieder. Aber nur um Ihnen noch eine Sache zu zeigen Wenn ich das wieder auf geschützt oder sogar privat setzen würde, wären sie nur privat was eine Katzenklasse betrifft. Also hier unten könnte ich immer noch so etwas wie ein Tier sagen , mein Tier. Gib ihm einen Namen. Nennen wir es im Alter von einem Jahr wie Jeff oder so ähnlich . Und unser Semikolon am Ende. Und wir können immer noch sagen, dass meine Tiergesundheit so ist. Das wird gut funktionieren. Das liegt daran, dass Gesundheit für ein Tier öffentlich ist, oder? Und wenn ich diesen Code hier kurz auskommentiere und unseren Code ausführe, können Sie sehen, dass das einwandfrei funktioniert. Wir haben es von einem Hund geräumt, der Name Spotty, Alter von drei Jahren und Gesundheit war 100. Und dann haben wir auch ein Tier geschaffen. Beachten Sie jedoch, dass wir nichts ausgedruckt haben. Und das liegt daran, dass unser Animal-Konstruktor keinen Text mehr ausdruckt. Und der Hauptgrund, warum wir das getan haben, ist, dass sonst jedes Mal, wenn wir einen Hund oder eine Katze erschaffen haben, nicht nur das, was unser Katzen- und Hundekonstruktor genannt wurde, nicht nur das, was unser Katzen- und Hundekonstruktor genannt wurde, sondern auch der Tierkonstruktor Nun, wenn ein Hund oder eine Katze erschaffen wird, entsteht ein Tier. Ordnung, und das ist unser einziger verfügbarer Konstruktor. Da hast du es also. Und nur um Ihnen zu zeigen, dass das funktioniert, kann ich hier sagen, dass meine Tiergesundheit und der pKa-Wert 100 sind. Wie auch immer, ich werde das entfernen und diese Codezeilen auskommentieren. Und machen Sie weiter und ändern unsere Katzenklasse hier wieder auf das Erben öffentlicher Tiere, nicht privat. Also los geht's. Alles funktioniert wieder. Und ich werde auch diese Tierkreation hier unten entfernen. Und ich weiß, dass viele unserer vorherigen Beispiele mit sehr kleinem Code gearbeitet haben. Aber jetzt, wo wir viel Grundlegendes gelernt haben und noch viel mehr in unserem Werkzeuggürtel haben. Ich wollte weitermachen und langsam im Laufe einer Handvoll Videos ein größeres Programm mit Ihnen erstellen , nur damit Sie sehen können, wie das in dem Prozess dahinter aussehen könnte wie das in dem Prozess dahinter und wie es alles zusammen Stück für Stück hier. Hoffentlich haben sie dir gefallen. Jedenfalls. Da hast du es. Das ist eine Art Zusammenfassung von allem, was wir derzeit haben und was wir sowieso in den kommenden Videos verwenden werden sowieso in den kommenden Videos Wenn Sie bisher alles verstanden haben, herzlichen Glückwunsch. Du wirst in Zukunft keine Probleme mit den Videos haben. Aber für diejenigen unter Ihnen, die Probleme haben, machen Sie sich keine Sorgen. Im nächsten Video werde ich alles, worüber wir im Unterricht gesprochen haben, in eine kleinere Form oder ein Beispiel aufteilen, damit Sie es sehen und mit dem Sie arbeiten können. Wie dem auch sei, das war's für dieses Video. Achten Sie erneut darauf, dort zu speichern, wo Sie sich befinden. Danke fürs Zuschauen und wir sehen uns im nächsten. 90. 89: In diesem Video werde ich alles, was wir in den letzten Handvoll Videos über den Unterricht gelernt haben, nehmen wir in den letzten Handvoll Videos über den Unterricht gelernt haben und es Stück für Stück in einer grundlegenderen Form aufschlüsseln . Wie ich weiß, war auf dem Bildschirm viel los. Hoffentlich hilft Ihnen dieses Video, wenn Sie mit all dem, was wir vor sich hatten , etwas verwirrt sind. Löschen Sie jedoch nicht den Code, den Sie haben, da wir ihn immer noch in der kommende Videos. Wenn Sie also mitmachen möchten, empfehle ich, dies beim Öffnen eines neuen Projekts zu speichern , wenn Sie hier mitmachen möchten. Andernfalls können Sie einfach sehen, was ich auf dem Bildschirm habe, und sicherstellen , dass Sie jedes Thema verstehen, während wir es durchgehen. Wie dem auch sei, lass uns anfangen. Ordnung, zuerst gehen wir weiter und kehren zum Anfang zurück. Wie erstellen wir eine Klasse? Nun, lass mich Kurs gefolgt vom Namen sagen. Du könntest also so etwas wie ein Tier sagen, dann haben wir eine Reihe offener und geschlossener geschweifter Klammern und ein Semikolon am Ende. Und los geht's. So erstellt man eine Klasse. Dann haben wir im folgenden Video darüber gesprochen, wie man eine Instanz einer Klasse erstellt. Und nun, wie machen wir das? Nun, wir sagen nur den Namen der Klasse gefolgt vom Namen des Objekts oder dieser Instanz der Klasse. Also könnte ich Tier sagen, mein Tier, wenn ich wollte. Setze einfach ein Semikolon am Ende. Und jetzt haben wir hier eine Instanz dieser Klasse erstellt. In diesem Fall hat Zugriff und eigene Version aller Member und/oder Variablen dieser Klasse. Wenn wir also den String-Namen so sagen , und für den Moment geben wir uns einfach einen Standardwert wie diesen. Und jetzt hat mein Tier hier, oder Instanz unserer Tierklasse hier, oder Instanz unserer Tierklasse hier, jetzt eine eigene Version oder Instanz dieses Mitglieds oder dieser Variablen hier. Und das liegt daran, dass es sich eigenes Tierobjekt als eigene Instanz oder Version der Klasse handelt, aus der es besteht. Also hier unten könnten wir sagen, dass mein Tier der Name dieser Version oder dieses Objekts oder dieser Instanz ist oder wie auch immer du es nennen willst Punktname und setze es gleich Spot oder was auch immer wir wollen. Wenn ihr euch jedoch daran erinnert, wenn es um Klassen geht, jedes Mitglied, jede Variable oder Attribut oder wie auch immer ihr es nennen wollt, standardmäßig privat, was bedeutet, dass es nur verfügbar ist zu dieser Klasse. Wenn wir es also den Objekten oder Instanzen der Klasse zur Verfügung stellen wollen , müssen wir es zu einer öffentlichen Einheit machen, dass wir einfach so öffentlichen Doppelpunkt sagen können . Und los geht's. Jetzt wird alles hier ein öffentliches Mitglied sein. Und wenn wir ein paar private Mitglieder gewinnen wollen, sagen wir einfach so etwas und wir können alles, was wir wollen, darunter setzen . Und diese würden nur für die Klasse verfügbar sein. Und dann gibt es noch einen letzten Zugriffsspezifizierer namens protected, dessen geschützte Mitglieder nur für die Klasse und alle Unterklassen oder Klassen verfügbar sind die Klasse und alle Unterklassen oder Klassen , die von ihr erben. Und darauf werden wir in einer Minute näher eingehen. Der Name ist also öffentlich. Wir können sagen, dass mein Tierpunktname jetzt gleich Spot weil mein Tier eine eigene Version dieser Namensvariablen hat . Wir können das beweisen, indem wir Folgendes tun und ein anderes Tier erstellen und es mein Tier nennen töten. Sag, mein Tier ist Salomon gleich. Und wenn Sie bemerkt haben, verwenden wir dies einfach wie jede andere Variable, außer dass wir angeben müssen, auf welche wir uns beziehen, da jede ihre eigene Instanz hat. Und darunter werden beide ausgedruckt. Also sag C aus meinem Tierernährungsnamen. Und dann sagen wir CL, neue Linie, mein Tier zu mir. Und wie gesagt, denn jeder von ihnen hat seinen eigenen Namen. Mein Tier heißt Spot und mein Tier 2 heißt Solomon. Also los geht's. Die andere Sache, über die wir gesprochen haben, war das Erstellen einer Methode in einer Klasse. Und ich zeige Ihnen einfach , wie Sie das richtig machen. Lassen Sie mich also weitermachen und unser zweites Tier entfernen und den Namen hier ausdrucken. Ordnung, jetzt haben wir nur unsere Klasse, die wir erstellt haben, die von einer öffentlichen Zeichenfolge gehalten wird , sodass Objekte Instanzen dieser Klasse sind Zugriff auf diese Variable haben. Denken Sie jetzt daran, dass jeder seine eigene Instanz davon haben wird. Und dann haben wir keine privaten Variablen oder Funktionen, aber wir haben auch hier einen Platz dafür. Bisher haben wir nur ein Tier namens my animal erstellt und seinen Namen in spot oder seine Instanz der Namensvariablen geändert . Okay, also wie erstellen wir jetzt die Klassenmethode? Nun, zuerst erstellen wir etwas, das einem Funktionsprototyp sehr ähnlich sieht einem Funktionsprototyp sehr ähnlich , weil es im Grunde dasselbe ist. Also sagen wir etwas wie Leere, offene und schließende Klammern und ein Semikolon am Ende. Denken Sie einfach daran, dass Sie innerhalb Ihrer Klasse nur Ihre Deklarationen haben möchten und außerhalb Ihrer Klasse Ihre Definitionen platzieren möchten. Das ist die richtige Art, Dinge zu tun. Wie ich in der Vergangenheit sagte. Dies wird helfen , wenn Sie unsere Klasse hier in einen Header und eine CPP-Datei übertragen . Und es macht die Dinge einfach sauberer und darauf werden wir in einem späteren Video eingehen. Aber jetzt mach dir keine Sorgen. Lassen Sie uns weitermachen und mit der Erstellung dieser Funktion fortfahren. Was wir also genau hier haben , erstellen wir den eigentlichen Körper oder die Definition der Funktion. Und wir sagen einfach C raus. Mein Name ist so ein Doppelpunkt. danach die Zeile gegeben. Um dann anzugeben , dass diese Funktion wir gerade als Teil dieser Tierklasse erstellt haben, kopieren wir einfach den Klassennamen und setzen ihn direkt vor den Namen unserer Methode. Und dann fügen wir den Operator für die Auflösung des Bereichs genau dort ein. Jetzt haben wir eine Funktion in unserer Klasse deklariert und definiert. Und wegen der Öffentlichkeit unser Objekt einer Klasse oder hat unser Objekt einer Klasse oder einer Instanz davon jetzt auch Zugriff darauf. Und eigentlich wollen wir hier oben auch den Namen ausdrucken. Also sagen wir, auf meinen Namen folgt Name und dann wie, in Ordnung, also hier unten haben wir eine Instanz unserer Tierklasse erstellt , geänderte Version der Namensvariablen. Und dann sagen wir einfach meinen Tierdrucknamen, einfach so. Öffnen und schließen Sie Klammern und ein Semikolon am Ende, weil wir dies wie jede andere Funktion aufrufen . Und wenn wir unseren Code hier ausführen, geht es los. Ich heiße Spot. Und eine andere Sache, über die wir gesprochen haben, ist, dass diese Tierart genau wie alle anderen Arten funktioniert. Sie können dies also tatsächlich als Parameter nehmen. Also ganz schnell, lass uns einfach weitermachen und diese Tierfunktion entfernen und sie auch hier wärmen. Jetzt haben wir einfach wieder unsere eine Variable hier, n, oder verschieben diese Zeile dorthin. Und dann sage ich einfach „ void name“. Und in Klammern wird ein Tier, ein Tier, genommen. Dann werde ich hier einen Codeblock haben und CL sagen. Mein Name ist ein Leerzeichen. Ich drucke den Namen des Tieres aus. Also sagen wir Animal Dot Name in weil dadurch eine Kopie von allem erstellt wird, was wir weitergeben Dieser Wert wird derselbe sein wie der, den wir weitergeben. Also hier oben kann ich Druckname und dann Klammern sagen. Ich kann mein Tier einfach so einfügen und am Ende ein Semikolon setzen. Und wir brauchen oben einen Funktionsprototyp. Also kopiere ich das einfach. Ich nehme das und setze ein Semikolon am Ende. Und wenn ich meinen Code hier ausführe und los geht's, haben wir meinen Namen ausgedruckt, aber Sie könnten dies auch als Rückgabetyp verwenden. Wir können dies als Referenz weitergeben und so weiter. Sie können dies also wie so ziemlich jeden anderen Typ verwenden. Der einzige Unterschied besteht darin, dass dieser Typ benutzerdefiniert ist. Wir haben es geschaffen, im Wesentlichen uns selbst, Ordnung, weil wir definiert haben, was ein Tier ist. Ordnung, jedenfalls, also mache ich weiter und werde das los. Äh, ja. Wir haben also nur diese wenigen grundlegenden Dinge hier. Als nächstes sprachen wir über Konstruktoren, bei denen es sich nur um spezielle Funktionen handelt , die automatisch ausgeführt werden. Wenn eine Instanz der Klasse erstellt wird. Standardmäßig haben Sie eine , die so aussieht. Übrigens müssen alle Konstrukteure dort zur Erinnerung öffentlich sein. Der Standardkonstruktor sieht also ungefähr so aus. Tier ist der Name der Klasse, öffne und schließe Klammern und öffne und schließe geschweifte Klammern. Und wenn Sie einen eigenen Konstruktor erstellen, existiert dieser nicht mehr. Und Sie können mehrere Konstruktoren haben, mit denen Sie sie auf verschiedene Arten überlasten genauso wie Sie Funktionen überlasten können. Und indem Sie nur zwei Konstruktoren haben , überlasten Sie sie. Sing, da der Name mit dem Klassennamen identisch ist. Ordnung, also lasst uns weitermachen und einen Konstruktor erstellen. Und wir beginnen einfach damit eine Kopie der Standardkopie zu erstellen. Also sage ich einfach so etwas. Und los geht's. Wir haben jetzt einen Standardkonstruktor. Wenn wir das richtig machen wollten, könnten wir es hier und dann die endliche Grenze deklarieren. Nun, also vergiss nicht, wir müssen speichern, was dieser kleine Teil f. Also sagen wir Tier gehalten vom Zielfernrohr-Auflösungsoperator Tier, und dann unsere geschweiften Klammern. Also hier ist unser Standardkonstruktor. Und das ermöglicht es uns, ein Objekt oder eine Version eines Tieres zu erstellen Version eines Tieres ohne irgendwelche Parameter annehmen zu müssen. Und das liegt daran, dass dafür keine benötigt wird, aber wir können einen anderen Konstruktor erstellen, der dies tut. Und bevor ich es vergesse, denken Sie daran, dass wir immer dann , wenn wir eine Variable haben , die Mitglied der Klasse ist , einen Unterstrich vor den Namen setzen wollen , nur damit wir wissen, hey, das ist ein Klassenmitglied , um es auch hier unten zu ändern. Und wie gesagt, wir können diesen Konstruktor hier überlasten. Ich erstelle gerade einen anderen Konstruktor. Und dieser wird so sein, wie Sie es nennen würden, ein parametrisierter Konstruktor. Weil es einige Parameter braucht. Also genau hier sagen wir das Tier. Und dann sagen wir in Klammern String, Farbe. So. Wir setzen kein Semikolon am Ende. Und dann erstellen wir die Definition für diesen Umschlag. Ich kopiere das einfach und füge es hier ein. Dann haben wir unsere geschweiften Klammern für den Codeblock. Und dann sagen wir C raus. Ein Raum leitet Farbe. Space Animal wurde genau wie dieses Tier erschaffen. Setzen Sie ein Semikolon am Ende und wir müssen angeben woher dieser Konstruktor kommt oder wofür er funktioniert. Also sagen wir davor Tier, gefolgt vom Operator für die Auflösung des Zielfernrohrs. Also los geht's. Wir haben jetzt einen anderen Konstruktor. Und jetzt, wenn wir diesen anstelle der Standardwerte verwenden wollen , werde ich einfach den ganzen Code löschen. Wir können Tier sagen. Tier. In Klammern setzen wir eine Zeichenfolge ein. Also werde ich persönlich sagen, dass ich am Ende ein Semikolon setze. Und wenn ich den Code hier ausführe und ich sage, dass ein blaues Tier erzeugt wird. Und das liegt daran , dass dies der Code ist, ausgeführt wird, als wir dieses Tier erstellt haben, da dies die Parameter sind wir verwendet haben, und eine andere Verwendung für einen Konstruktor oder eine der Hauptanwendungen dafür ist stellen Sie sicher, dass Ihre Klasse einsatzbereit ist. Und damit meine ich, dass Sie sicherstellen möchten , dass alles einen Anfangswert hat. Wie immer wollen Sie das nicht hier tun, all Ihre Deklarationen hier und Ihre Definitionen hier unten. Ordnung, also was ist der beste Weg, um unserem Konstruktor Namen und Anfangswert zu geben ? Nun, gleich nach den Klammern sagen wir Doppelpunkt, Unterstreichungsname in Klammern setzt den Wert ein. Also sagen wir einfach doppelte Anführungszeichen und setzen dort nichts ein. Und wir machen das Gleiche hier unten, außer dass wir hier unten den Namen des Unterstrichs sagen werden . Und dann sagen wir in Klammern den Namen. Und um diesen Wert hier zu erhalten, fügen wir einfach einen weiteren Parameter hinzu. Also sagen wir String, Color, String. Wir müssen sicherstellen, dass wir das zu unserer Erklärung dieser Methode hier oben hinzufügen . Jetzt haben wir einen weiteren Konstruktor erstellt, eine Zeichenkette für die Farbe und eine Zeichenkette für den Namen akzeptiert. Und es wird den Namen, den wir eingeben, in unsere Namensvariable einfügen . Der Grund, warum ich den Fehler hier hatte, ist, dass ich diesen Doppelpunkt einfach nicht genau dort hatte. Und da hast du es hier unten. Wir haben einen Fehler bekommen, weil wir keinen Konstruktor mehr haben , der nur einen Parameter akzeptiert. Und wenn ich das entferne und es wieder in offene Klammern setze , sehe ich meine verschiedenen Let's do-Optionen. Und es heißt, ich brauche eine Farbe und einen Namen, oder ich könnte einfach nichts tun da wir diesen Standardkonstruktor haben. Wie gesagt, der Hauptzweck des Konstruktors besteht darin, Ihre Klasse einsatzbereit zu machen , indem Sie alle darin enthaltenen Mitglieder initialisieren. Und dann können Sie auch jeden Code haben, den Sie ausführen möchten. Eine Instanz Ihrer Klasse wird mit diesem Konstruktor erstellt. Wie gesagt, der beste Weg, es zu initialisieren , ist eine Initialisierungsliste. Und alles was Sie tun müssen, ist Doppelpunkt gefolgt von der Variablen und dem Wert, den Sie ihr in Klammern geben möchten, zu sagen der Variablen und dem Wert, den . Und wenn wir mehr als eine Variable hätten, würden wir Komma sagen. Und dann füge es in den anderen Variablennamen und setze dann diesen Wert und Klammern. Und denken Sie daran, dass sie von oben nach unten in Ordnung sein müssen , und Sie gehen hier einfach von links nach rechts. Also werde ich einfach weitermachen und das entfernen , da wir nur die eine Variable haben. Und los geht's. Jetzt kann ich weitermachen und eine Farbe auftragen. Also könnte ich wieder blau sagen. Und dann wird unser Name Spot sein. Und jetzt, wo wir es hier geschafft haben, können wir sagen, dass ein blaues Tier geschaffen wurde, nach dem Namen benannt ist. Und los geht's. Wenn ich meinen Code hier ausführe, sollte das bedeuten, dass blaue Tiere einen benannten Spot erstellt haben, und genau das tut es. Eine andere Sache, über die wir gesprochen haben, war die Verkapselung. Also lasst uns weitermachen und uns das ansehen. Im Grunde kann ich jetzt mit meiner String-Variablen herumspielen. Ich könnte den Namen meines Tierpunkt-Unterstrichs sagen und diesen auf alles setzen, was ich wollte. Und nichts hält mich davon ab. Und das scheint hier keine so große Sache zu sein, aber glauben Sie mir, Sie möchten Ihre Mitglieder nicht öffentlich haben. Wenn Sie es vermeiden können, möchten Sie alles in einer Getter - und Setter-Funktion haben , die wir hier gleich eingehen werden , damit Sie zusätzliche Regeln definieren und eine zusätzlicher Code immer dann, wenn etwas mit einer Variablen herumspielen möchte . Und wenn Sie sich entscheiden, später etwas damit zu tun, ist Ihr Code jetzt dynamischer, weil Sie sich nur diese beiden Funktionen ansehen müssen anstatt zu versuchen, überall zu finden diese Variable befand angepasst. Also lasst uns weitermachen und diese ändern. Zuerst nehmen wir unsere String-Variable hier und setzen sie hier unter private. Jetzt ist das ein privates Mitglied, was Sie wollen. Und dann erstellen wir hier oben zwei Funktionen für einen Getter und einen Setter. Und bevor ich das mache, werde ich einfach weitermachen und das hier minimieren. Es steht uns also nicht im Weg. Also sagen wir set name als Name der Funktion, und wir setzen ein Semikolon am Ende, und das wird einen String-Namen annehmen. Dann sagen wir unten getName. Und das wird nichts kosten. Es wird jedoch eine Zeichenfolge zurückgegeben. Und dieser hier oben wird nichts zurückgeben. Okay, also sagen wir void, setName, Stringname und String getName. Und das wird es dort sein. Dann werden die Definitionen für beide unten erstellt . Wenn ich diesen hier kopiere und unseren Codeblock hinzufüge, der grundlegendste Code für wäre der grundlegendste Code für einen Setter, Folgendes zu tun. Ich würde sagen, Unterstrichname ist gleich Name. Und jetzt erlaubt dies allem, was diese Funktion aufruft, diese private Variable zu ändern. Dann machen wir dasselbe mit unserer getName-Methode hier. Oder die Funktion erstellt die Definition hier unten, so. Und wir sagen den Begriff Unterstreichungsname. Dann müssen wir sicherstellen , dass wir angeben, dass beide Funktionen Teil unserer Tierklasse sind. Wir sagen also Tier, gefolgt vom Operator für die Auflösung des Zielfernrohrs bei beiden. Und vermeiden Sie, dass vorher kommen muss. Richtig, denn es wird direkt vor dem Methodennamen und dem Seamless-String stehen. Also gehe ich auf die andere Seite, richtig? Und wenn wir jetzt unseren Code ausführen, die blauen Tiere den Namen Spot erstellt, also funktioniert alles noch. Und dann hier unten, wenn ich meinen Namen ändern will, muss ich in meinem Tier die setName sagen und dann hier einen String-Wert eingeben , wie Solomon, z.B. ein Semikolon am Ende setzen. Du denkst vielleicht: Hey, wie ist das anders? Nun, momentan ist es nicht viel anders, außer dass es die richtige Art ist, Dinge zu tun. Aber wenn ich das an 100 verschiedenen Stellen in meinem Code hätte , wo ich den Namen oder eine andere Variable änderte, war das immer wieder. Und ich entscheide, weißt du was? Ich werde weitermachen und ausdrucken, hey, der Name wurde geändert, als ich ihn an 100 Stellen ändern musste. Aber weil ich hier das Zentrum habe, kann ich einfach den Namen des CL-Unterstrichs sagen. Der Bereich wurde geändert , um diesem einen solchen Namen geben und eine neue Zeile zu erstellen. Und dann hier unten sind sie entscheidend für das Flugzeug. Und wenn ich meinen Code jetzt ausführe, heißt es jetzt, dass ich den kreativsten Namensspot gelernt habe und dann Spy , der in Solomon geändert wurde. Okay, also los geht's. Deshalb sind ein Getter und Setter nützlich und wichtig. Vor allem, wenn ich das an mehreren Stellen hatte. Jetzt muss ich mich nicht damit befassen. Ich kann einfach hier nachschauen und mein Ding genau dort ändern. Wenn ich also Fehler beim Ändern bekommen habe, muss ich mir nur meinen Code hier ansehen und sehen, was das verursacht hat. Anstatt mir all die hundert Orte anzusehen , an denen ich mich damit herumgespielt habe. Und ich kann Einschränkungen haben hier ist ein Code hier, um den ersten Buchstaben groß zu machen oder ihn so zu machen, dass der Name nur zehn Zeichen enthält oder was auch immer ich tun wollte, ? Also los geht's. Auf diese Weise erstellen Sie einen grundlegenden Setter und Getter. Und was wir hier gemacht haben, wo wir die Funktionalität unserer privaten Variablen in diesen öffentlichen Funktionen hatten unserer privaten Variablen in , wird als Kapselung bezeichnet. Und das allerletzte, worüber wir gesprochen haben, hieß Vererbung. Lassen Sie mich also weitermachen und alles hier ganz schnell entfernen. Und sag Folgendes. Sagen wir Klassentier auf meinem Codeblock, und ich sage String-Name, und ich sage auch Alter, einfach so. Also wird jedes Tier einen Namen und ein Alter haben. Denken Sie daran, dass beide privat sind, also ist dies genau das Gleiche wie privat zu sagen. Und das liegt daran, dass Mitglieder einer Klasse standardmäßig privat sind. Also einfach so. Und dann werden wir weitermachen und eine Klasse erstellen , die von unserer Tierklasse erbt. Das wird also die Basisklasse sein und die Klasse , die von ihr erbt, wird die Unterklasse sein. Also hier unten sage ich Klassenhund, z.B. erbt vom Tier. Und ich brauche hier einen Zugangsspezifizierer. Und in diesem Fall sagen wir öffentlich. Und im Grunde, wenn Sie sich erinnern, wenn ich öffentlich sage, hören Sie, dass alles, was öffentlich war, auf Hund übertragen und öffentlich sein wird . Alles, was geschützt wurde, wird auf den Hund übertragen und geschützt und alles, was privat war. Nun, es ist außerhalb davon nicht zugänglich, also spielt es keine Rolle, ob ich geschützt sage, alles, was öffentlich war, würde übertragen und geschützt werden. Alles, was geschützt war, wurde übertragen , um geschützt zu bleiben, und alles war privat. Nun, es spielt keine Rolle, ich konnte sowieso nicht darauf zugreifen. Und wenn ich dann privat sagen würde, würde alles, was noch nicht privat war übertragen und privat gemacht. Wie auch immer, lass uns weitermachen und hier etwas Code eingeben. Und eigentlich werde ich weitermachen und den Zugriffsspezifizierer mit uns ändern , um ihn zu schützen, sodass der Hund Zugriff auf diese Variablen hat. Und offensichtlich ist dies nur ein sehr einfaches Beispiel. Also nimm nicht das, was ich hier mache, um darauf hinzuweisen, wie man Dinge erschafft. Ich möchte Ihnen nur die grundlegende Verwendung von Erbschaft zeigen. Und denken Sie daran, wir können von mehreren Klassen erben , indem wir dem ein Komma geben. Wir könnten öffentlich sagen und dann noch einen Klassennamen und andere Klassen, die vom Hund erben, oder? Und dann hier unten, machen wir einfach mit der rechten Maustaste und erstellen Einfachheit halber eine öffentliche Variable und fügen einen Brief hinzu. Jedes Tier wird also einen Namen und eine Altersvariable haben , und jeder Hund wird hier eine Rassenvariable zusammen mit diesen haben . Okay? Und jetzt könnten wir sagen, Ordnung, wir werden einen neuen Hund erschaffen. Mein Hund, einfach so. Und da diese beide einen Standardkonstruktor haben, benötige ich hier keine Parameter. Und wenn Sie mehr darüber erfahren möchten, einfach zum letzten Video zurück, in dem wir über Vererbung gesprochen haben, und gehen Sie näher darauf ein. Und dann lassen Sie uns weitermachen und ein paar Konstruktoren erstellen ein paar Konstruktoren um all diese Werte zu initialisieren. Und ich werde das hier einfach auf privat setzen . Und ich entschuldige mich. Ich habe vergessen, hier alle unsere Mitgliedsnamen mit einem Unterstrich zu versehen. Also lasst uns weitermachen und es tun. Nun, um dies zu initialisieren, werden nur ein paar Konstruktoren erstellt. Also sagen wir Tier. Und dieser wird eine Zeichenfolge, einen Namen und ein Alter annehmen. Und wir werden die Definition unten niederschreiben. Und wir geben an, dass dieser Teil der Klasse unseren Codeblock so haben wird. Dann sagen wir nach unseren Klammern hier einfach den Namen des Doppelpunktunterstrichs. Und dann wird in Klammern der Name eingefügt. Sagen Sie Komma, unterstreichen Sie Alter, und dann fügen Klammern das Alter ein. Und dann wollte ich sie nur noch hinzufügen. Unsere geschweiften Klammern mögen diese, nur damit es aus dem Weg ging. Und dann können wir einen sehr ähnlichen Konstruktor für Hund erstellen , außer dass wir ihn ergänzen. Und vergiss nicht, dass wir unseren Konstruktor hier oben machen müssen , öffentlichen Jose Public Colon wie diesen. Und nur damit es ein bisschen schöner aussieht. Und dann hier unten für unseren Hund, wird ein Konstruktor erstellt. Aber bevor wir das tun, sagen wir private Münzen wie diese, um unsere Saite zu behalten. Dann erstellen wir einen Konstruktor. Wir sagen also, dass dog und m Klammern eine Zeichenfolge für den Namen, für das Alter und eine Zeichenfolge für den Brief verwenden. Dann erstellen wir unten die Definition. Und vergiss nicht, wir müssen die Vorderseite der Hundeklasse von Liz angeben . Und ich werde einfach ein paar geschweifte Klammern wie diese umgeben. Dann setzen wir unsere Initialisierungsliste ein. Dann, weil jedes Mal, wenn ein Hund erstellt wird, ein Tier erschaffen wird, da wir daraus abgeleitet sind, müssen wir diesen Konstruktor auch verwenden , wenn wir hier unseren einzigen Hundekonstruktor verwenden. Um das zu tun, sagen wir Tier, Dickdarm, Tier. Und dann sagen wir in Klammern Name, Komma H plus so. Und wir sagen, wir bezeichnen dich als Teil der Animal-Klasse. Dann wollen wir den Animal-Konstruktor. Und wir werden diese beiden Werte hier einfügen, was unser Tierkonstruktor annimmt. Und dann können wir unsere Rasse hinzufügen , die nach diesen Konstruktoren initialisiert werden soll nach diesen Konstruktoren initialisiert , und Komma-Unterstriche kurz. In Klammern wird der Brief eingefügt, und das wird alles gut funktionieren. Und dann müssen Sie nur noch unsere Deklaration oder Erstellung unseres Hundeobjekts ändern . Also sagen wir Hund, und dann nenne ich das meinen Hund. Und in Klammern können Sie sehen, dass wir jetzt drei Konstruktorwerte benötigen , die dem Namen entsprechen. Also nennen wir ihn Spot, gefolgt von seinem Alter. Also sagen wir einfach so etwas wie zwei. Und dann verfolgen wir das mit einer Rasse. Wir können also Boxer oder so etwas sagen und am Ende ein Semikolon setzen. Und das alles wird gut laufen. Und wir können entweder alles unten ausdrucken oder wir könnten sogar den Code zum Ausdrucken in unseren Hundekonstruktor einfügen. Und das würde auch funktionieren. Und vergessen Sie nicht, dass diese beiden Konstruktoren ausgeführt werden , wenn wir das hier erstellen. Und nur um Ihnen zu zeigen, dass, wenn ich CL sagen würde, Tier-Dolonraum, und dann hier rein, wenn ich Hund unternehme und den Code durchführe, Sie sehen können, dass wir Tier und Hund ausgedruckt haben. Und das liegt daran, dass diese beiden Konstruktoren ausgeführt werden. Denn wenn ein Hund erschaffen wird, entsteht ein Tier. Und wir haben hier nur den einen Konstruktor , der drei Werte akzeptiert. Zwei davon gewöhnen sich an Tierkonstruktoren und dann haben wir auch eine Rasse hinzugefügt. Ordnung, also los geht's. Dies ist ein grundlegendes Beispiel für die Verwendung von Vererbung. Hund hat jetzt im Wesentlichen Zugang zu den Dingen dieses Tieres, sowie zu den Dingen im Süden. Und um diesen Punkt ganz schnell nach Hause zu bringen, wird ein Tier eine öffentliche Methode namens Shout entwickeln. Und wir werden die Definition unten erstellen. Also kopiere ich die einfach hier unten. Sag Chow und gibt an, dass dies von einem Tier stammt. Und in unseren geschweiften Klammern hier, und wir sagen übrigens Leerenregal. Wir sagen: Leeres Tierheim, so. Und dann sagen wir hier drinnen einfach Hallo. Und weil Hunde von Tieren stammen, können sie diese Funktion nutzen, zumal sie öffentlich ist. Also jetzt, genau hier unten, könnte ich sagen, mein Hund ist gestorben, schrei. Wenn wir einen Code ausführen, können Sie sehen, dass er einwandfrei funktioniert. Wir schreien es aus. Hallo! Und ich werde weitermachen und das Ausdrucken von Hund und Tier hier entfernen . Schon. Ich habe diesen Punkt vermittelt. Und ich führe es erneut für dich durch. Und wie Sie sehen können, heißt es einfach Hallo. Und selbst wenn es unsere Methode gibt, war unsere Funktion geschützt. So hätten wir innerhalb der Klasse selbst Zugriff darauf gehabt. Also wenn ich diese Codezeile hier unten und in unserem Konstruktor entferne , zB ich hätte Shell benutzen können. Der Code mit interclass wird also Zugriff auf diese Schutzvariable haben , da sie für die Klasse und für alles , was sich daraus ableitet, verfügbar ist. Also kann ich hier schreien sagen, jetzt mach weiter und bewege das, damit es für euch ein bisschen lesbarer ist, und führe unseren Code aus. Und jetzt, wenn wir einen Hund erstellen, ruft es Hallo. Und wir hätten das auch in eine Funktion oder etwas für unseren Hund einbauen können. Und das hätte genauso gut funktioniert. Und wenn wir andere Variablen oder Funktionen gehabt hätten , die geschützt oder öffentlich wären, hätten wir im Code unserer Hundeklasse Zugriff darauf gehabt . Um Ihnen ein Beispiel zu zeigen, könnte ich x sagen und dann ist das kein gutes Beispiel dafür , wie man diese benutzt. Aber du wirst den Punkt hier unten verstehen. Ich hätte so etwas wie x gleich zehn sagen und es dann x in der Zeile ausdrucken können. Und wenn ich meinen Code ausgeführt hätte, wäre es gut gelaufen, weil unsere Klasse hier Zugriff auf den Code hat. Obwohl are code Zugriff auf ein Hier hat, hätten wir so etwas wie mein Hund nicht sagen können , x ist gleich zehn, z.B. hätte nicht funktioniert, aber es hätte getan, wenn dies öffentlich wäre. Da hast du es. Code läuft einwandfrei, oder wir können ihn einfach so ausdrucken. Und das wird auch funktionieren. Also lass mich trotzdem gehen. Hoffentlich hat dir dieses Video ein bisschen geholfen , wenn du einen großen Teil bekommen hast und all den zusätzlichen Code, den wir zuvor auf dem Bildschirm hatten. Danke fürs Zuschauen und wir sehen uns im nächsten. 91. Kapitel 15 (Kurse): Statisches Schlagwort: In diesem Video werfen wir einen Blick auf das statische Schlüsselwort in C plus plus. Jetzt kann das Schlüsselwort static auf Dinge wie Variablen, Funktionen und Objekte angewendet werden. Und was genau es tut, wird sich ändern, je nachdem, womit es verbunden ist. Und ich werde kurz einen Blick auf vier verschiedene Beispiele werfen einen Blick auf vier verschiedene Beispiele wie und wann und wie und verwendet werden könnten , damit Sie, wenn Sie es jemals in Zukunft sehen würden, keine Vorstellung davon haben, was es jetzt ist. allgemein oder allgemein. Sie können sich zwar vorstellen , wenn Sie das statische Schlüsselwort so sehen , dass alles, woran es gebunden ist , jetzt dauerhaft ist und die einzige Kopie davon sein wird. Und wir werden uns gleich ansehen , was ich damit meine. Schauen wir uns also zuerst das Schlüsselwort static an , wenn es für Variablen und Funktionen verwendet wird . Wie Sie hier für die Definition oder wie das funktioniert sehen können, habe ich im Grunde gesagt, dass es eine permanente und einzige Kopie einer Variablen erstellt . Also lass uns weitermachen und einfach eine Funktion über main erstellen , um ein Beispiel dafür zu sehen. Also was wir tun werden, ist Boyd zu sagen, Zeit zählen, Dram, so, Klammern öffnen und schließen. Und wir werden den Codeblock hier drin erstellen. Wir sagen statisch. Im College setze ich es auf 0, und darunter werde ich plus und so weiter sagen. Und dann hier drinnen, lass uns auch weitermachen und ausdrucken. Also setze es jedes Mal auf eine neue Zeile. Und dann hier unten in unserer Hauptfunktion rufen wir diese Methode nur fünfmal auf. Dann werde ich einfach weitermachen und unseren anderen Code hier auskommentieren. Vorerst mal. Wir werden einfach wie folgt passieren. Wenn unsere Methode hier zum ersten Mal ausgeführt wird, wird sie durchlaufen und eine statische Integer-Variable namens i erstellen und sie auf 0 setzen. Und wenn Sie sich erinnern, habe ich gesagt, dass diese Variable jetzt permanent sein wird und die einzige Kopie dieser Variablen ist . Und das bedeutet Wenn es zum ersten Mal durchläuft, wird es erstellt und auf 0 gesetzt. Und weil es statisch ist, wird dies die einzige Kopie unserer Integer-Variablen namens i innerhalb des Gültigkeitsbereichs sein. Wir können also immer noch nicht sagen , dass ich hier gleich zehn bin, ohne einen Fehler zu bekommen weil es immer noch nur in diesem Rahmen liegt. Dann wird I gedruckt, was 0 sein wird, und dann I um eins erhöht. Wenn dies keine statische Variable ist, wird normalerweise eine neue Variable namens I erstellt. Jedes Mal, wenn diese Methode ausgeführt wird, erhöht sich print out 0 um eins. Erstellen Sie beim nächsten Mal eine weitere Ganzzahl namens Die set gleich 0, ausgedruckt und kristallisiert um eins und so weiter. Und wir würden immer das gleiche Ergebnis erzielen. Und wenn wir unseren Code ohne das statische Schlüsselwort hier schnell ausgeführt haben, können Sie sehen, dass dies der Fall ist. Genau dort haben wir 05 Mal ausgedruckt, seit wir die Methode fünfmal aufgerufen haben. Aber wenn wir hier static setzen und uns daran erinnern, dass das nur Kleinbuchstaben sind. Und vor dem Datentyp, wenn wir unseren Code jetzt ausführen und tatsächlich jedes Mal um eins erhöht werden. Und das liegt daran, dass wenn wir unsere Methode erneut aufrufen, weil ich bereits nach dem ersten Durchlauf erstellt wurde , sie einfach dieselbe Variable verwenden wird. Also im Wesentlichen beim zweiten Mal hier, wird diese oberste Zeile ignoriert. L Ausdruck, ich erhöhe es um eins. Und wenn es dann wieder um L geht, ignoriere diese Zeile noch einmal, weil ich bereits erstellt wurde und es nur eine Kopie davon geben wird. Jedes Mal, wenn wir diese Methode jetzt aufrufen, wird diese Deklaration und Initialisierung hier ignoriert und wir drucken sie aus und erhöhen sie dann um eins. Also los geht's. funktioniert das Schlüsselwort static mit Variablen in Funktionen. Es erstellt eine permanente und einzige Kopie der Variablen. Und Sie fragen sich vielleicht, was wäre, wenn wir so etwas machen und einen Code ausführen würden? Nun, da nur diese obere Zeile ignoriert wird, wo dies deklariert wurde, werde ich jedes Mal gleich 0 gesetzt und dann wird 0 ausgegeben. Wenn Sie also so etwas tun, möchten Sie es in derselben Zeile initialisieren , damit dies in Zukunft ignoriert werden kann. immer, wir können diese Funktion jetzt löschen sowie die Aufrufe löschen und zu diesem zweiten Anwendungsfall für static übergehen , der Variablen in Klassen enthält. Dadurch wird eine permanente Variable erstellt, die von allen Objekten dieser Klasse gemeinsam genutzt wird . Also was ich tun werde, ist unseren Code hier einfach so auskommentieren . Und dann könnten wir das entweder in den Hunde-, Katzen- oder Tierunterricht aufnehmen, und es würde trotzdem funktionieren. Also lasst uns einfach weitermachen und es hier in unsere Hundeklasse bringen. Nur als Beispiel: Was wir tun werden, ist statisch zu sagen. Ich setze am Ende ein Semikolon. Und was wir dann tun müssen, um das hier zu initialisieren, sage ich statisch. Und dann ist Hund der Name der Klasse, Doppelpunkt, Doppelpunkt oder der Bereichsauflösungsoperator. Und dann sag, ich setze es zum Beispiel auf 0. Und wir werden das statische Schlüsselwort dieses zweite Mal entfernen . Also sagen wir einfach Hunde-Dolon, Doppelpunkt I ist gleich 0. Wir nehmen diese statische Integer-Variable, die wir bereits erstellt haben. Und wir müssen das statische Schlüsselwort nach diesem Punkt nicht mehr verwenden . Und dann initialisieren wir es außerhalb der Klasse, indem wir sagen, dass int der Typ ist, der vom Klassennamen mit dem Bereichsauflösungsoperator gehalten wird, dann der Name der Variablen, sie gleich 0 setzen. Beachten Sie hier also, dass Sie nach dem Erstellen der Variablen das nicht mehr verwenden müssen, wenn Sie statische Schlüsselwort nicht mehr verwenden müssen, wenn Sie in Zukunft darauf verweisen. Und der einzige Grund, warum wir anterior verwenden , ist einfach die Art und Weise, wie diese Variable initialisiert wird wenn sie in eine Klasse eingefügt wird. Es ist eine statische Variable, und das ist der Weg, dies zu tun. Aber normalerweise können wir das einfach als „Ich bin Feature“ bezeichnen . Und wir werden das einfach veröffentlichen damit wir uns leicht ansehen können, wie das funktioniert. Also hier unten haben wir bereits ein Objekt oder eine Instanz unserer Hundeklasse namens my dog. Und lass uns weitermachen und meinen Punkt speichern und ihn auf fünf setzen. Dann lass uns einen anderen Hund erschaffen, meinen Hund auch. Und wir geben dem einfach einen Namen wie Sparky und geben ihm zum Beispiel ein Alter von zwei Jahren. Dann drucken wir meinen Hund aus, um zu sehen, wie mein Hund auch ist. Und wir setzen das auf eine neue Zeile, wir erstellen danach eine neue Zeile, sollte ich sagen. Und wenn wir unseren Code überprüfen, können Sie sehen, dass mein Hund zum Sterben fünf Jahre alt war. Und das liegt daran, dass diese statische Integer-Variable, wie hier geschrieben, eine permanente Variable ist , die von allen Objekten dieser Klasse gemeinsam genutzt wird . Es spielt also keine Rolle, wie viele Instanzen der Klasse wir erstellen, sie werden alle dieselbe Variable teilen. Wenn wir also sagen würden , dass mein Hund mir plus gleich fünf ist und dann meinen Hund ausdrucken würden. Ich würde zehn bekommen und das zeige ich dir jetzt. Also, wenn ich sagen würde, dass mein Hund zwei Punkte plus gleich ist, nun, wir sagten ursprünglich, ich sei gleich fünf und jetzt haben wir nur noch um fünf zugenommen. Und weil sie genau dieselbe Variable teilen, drucke ich zehn aus, wenn wir meinen Hund ausdrucken. Okay. Also los geht's. Wie gesagt, wir hätten tatsächlich sagen können, ich habe diese statische Variable hier in animal erstellt. Und dann hätte nicht nur jede Instanz von Katze diese Variable geteilt, da es sich um ein Tier handelt. Aber jeder Exemplarhund hätte genauso gut über jede Tierinstanz , dass wir zwei geschaffen hätten. Also hätte alles, was ein Tier ist , diese Variable geteilt. Damit du sowieso musst, werde ich weitermachen und das von Hund hier entfernen. Und wir werden auch diesen zusätzlichen Code entfernen. Lassen Sie uns einen Blick auf den dritten Anwendungsfall für die statische Variable werfen. Wenn ich also ein statisches Klassenobjekt erstelle, erstellt es eine permanente und einzige Kopie dieses Objekts. Und der wahrscheinlich einfachste Weg, Ihnen dies zu zeigen , wäre, eine andere Funktion zu erstellen. Also genau hier sagen wir void, Objekt erstellen, Klammern öffnen und schließen. Und dann haben wir unsere geschweiften Klammern wie diese hier drin. Wir werden weitermachen und einen Hund namens My Dog erschaffen. Ziemlich traurig. Dann geben wir ihm einen Namen. Also sagen wir Sparky und geben ihm ein Alter wie möglich. Und danach sagen wir, dass mein Hund gestorben ist, seine Gesundheit verändert hat. Und wir werden sagen, minus fünf werden als Wert von negativen fünf betrachtet. Und dann drucken wir meinen Hund aus, der gesund ist, so. Und das drucken wir schräg aus. Mein temporärer Hund kriegt keine Hilfe. Line, einfach so. Dann rufen wir diese Funktion ein paar Mal auf. Und unsere Hauptmethode. Nun, wenn unser Code ausgeführt wird und er zu dieser Funktion L kommt, erstelle einen Hund, meinen Hund, und gib ihm den Namen Sparky und ein Alter von zwei Jahren. Dann sagen wir, dass mein temporärer Hund die Gesundheit minus fünf ändert, was seine Gesundheitsvariable ändern wird, die, wenn Sie sich erinnern, einen Standardwert von 100 hat und dann geht es zum Ausdrucken 95. Dann wird es das nächste Mal ignorieren. Wenn wir das hier statisch machen, das heißt, wir sagen, dass ein Hund so ist, dann wird es das nächste Mal ignorieren, genau wie es mit der statischen Variablen der Fall , die wir in einer Funktion hatten, weil mein temporärer Hund bereits erstellt wurde und es nur eine Kopie davon geben kann und er dauerhaft ist und wir dann seine Gesundheit, die ich hatte, wieder verringern und ausdrucken. Wenn wir also unseren Code hier ausführen, können Sie sehen, dass ich ihn auf 95 Monate setze , weil er mit einem 100-Subtrakt von 05 angefangen 100-Subtrakt von 05 angefangen hat, und dann wird er jedes Mal, wenn wir ihn aufrufen, um fünf sinken. Und dann, nur um Ihnen zu zeigen, dass das nur wegen des Schlüsselworts static passiert Wenn wir dies entfernen und dann unseren Code ausführen, ist. Wenn wir dies entfernen und dann unseren Code ausführen, werden Sie sehen , dass unser Hundekonstruktor tatsächlich Lauf viermal. Nachdem der Körper unseres Hundes zum ersten Mal hier erschaffen wurde, führten wir diese Funktion aus, die einen neuen Hund namens Sparky H2 schuf und einen neuen Hund namens Sparky H2 schuf seine Gesundheit ausdruckte. Und dann hier unten, nachdem es abgezogen wurde, ist es gesund und druckte es erneut aus. Und dann haben wir das Gleiche öfter gemacht. Also das nächste Mal durchlesen und diesen Code noch einmal lesen, schreiben Sie einem anderen Hund namens Sparky H2 Health einen 100 zu, der erneut ausgedruckt wurde, und sie gingen und wiederholten es einfach weiter. Wenn wir hier static hinzufügen, wird diese ganze Zeile ignoriert. Mit dieser Statik wird also eine permanente und einzige Kopie davon erstellt. Und jedes Mal, wenn diese Linie wieder gelaufen ist, wird sie. Also los geht's. Statische Klassenobjekte und statische Variablen in Funktionen funktionieren auf die gleiche Weise. Lassen Sie uns nun einen weiteren Anwendungsfall dafür durchgehen. Dies sind statische Funktionen in Klassen. Aber bevor wir das tun, lassen Sie uns diesen Code zusammen mit der Funktion selbst entfernen . Ordnung, also lasst uns weitermachen und einen Blick auf statische Funktionen und Klassen werfen. Wenn wir also zum Beispiel hier zu unserer Tierklasse gehen und in der Öffentlichkeit eine statische Funktion schaffen. Wir können das so machen. Wir sagen statisch, void, print, hello, offene und schließende Klammern und ein Semikolon am Ende. Und dann definieren wir es hier unten nur für gute Praxis. Also sagen wir Tier, Doppelpunkt, Hallo, Klammern öffnen und schließen. Dann werden wir den Codeblock hier unten erstellen. Dann müssen wir vor dem Tier noch sagen, vermeide das, denn das ist unsere Rückkehrerklärung. Beachten Sie erneut, dass wir das statische Schlüsselwort nicht erneut verwenden müssen . Und dann hier unten werde ich, wir machen und danach Hallo sagen, einfach so. Und jetzt haben wir in jeder Instanz unserer Tierklasse nur eine Version dieser Funktion. Und da es nur eine Version dieser Funktion gibt , ist es nicht erlaubt, auf nicht-statische Variablen zuzugreifen. So können wir zum Beispiel nicht sagen, dass das Unterstrichalter gleich fünf ist. Wenn ich mit der Maus darüber fahre, werden Sie sehen, dass eine nicht-statische Elementreferenz relativ zu einem bestimmten Objekt sein muss . Und das bedeutet , dass unsere Funktion nicht verwendet werden kann, weil unsere Funktion statisch ist und dass es nicht für jedes Objekt des Klassentieres , das wir erstellen, eine neue Instanz jedes Objekt des Klassentieres davon gibt spezifische Instanzen dieser Variablen, da es für jedes Objekt unserer Klasse ein Unterstrichalter gibt. Es kann jedoch statische Variablen und Funktionen verwenden. Also wenn wir so etwas wie statisch hätten, ich mag es, damit es gebrauchen könnte, also da hast du es. Und denken Sie auch daran, dass wir bei Verwendung einer statischen Variablen Tierkolon, Doppelpunkt sagen und es dann so initialisieren müssen. Und wir müssten auch hier noch mitreden. Also los geht's. Statische Funktionen und Klassen werden von jedem einzelnen Objekt dieser Klasse gemeinsam genutzt . Und sie können nur statische Variablen und Funktionen verwenden , da sie nicht für jedes Objekt spezifisch sind. Nun, wenn wir das in etwas wie i plus gleich fünf ändern und dann hierher gehen und ein paar Tiere erschaffen haben. Wenn es also ein Tier ist, muss man ihm einen Namen und ein Alter geben. Also sagen wir Jack, Alter eins. Und ich sage Tier, um zu sagen, dass Karl B auch einer ist. Und dann können wir sagen, Tier ein Kilo, einfach so. Tierdrucke hallo. In beiden Fällen wird das einwandfrei funktionieren. Und sie haben hier dieselbe Funktion. Und nur um Ihnen ein paar Dinge damit zu zeigen, können wir sagen, dass x gleich fünf ist. Und dann sagen wir x plus so. Und dann sagen wir, dass I plus gleich fünf ist. Und wir drucken das Folgende aus. Wir sagen, x ist gleich. Um x auszudrucken. Meistens ist Cl I gleich. Und wir werden beide auch in Ihre Zeilen aufnehmen. Jetzt haben wir diese Funktion zweimal aufgerufen. Denken Sie daran, dass sie genau dieselbe Funktion haben. Und bevor Sie einen Code ausführen, brauchen wir hier Klammern, genau so, wie wir es übrigens bei jedem Funktionsaufruf tun würden , falls ich vergessen habe, es früher im Kurs zu erwähnen. Manchmal, wenn Leute über den Aufruf einer Funktion sprechen, können sie dies auch als Aufruf der Funktion bezeichnen , oder? Also nur eine Vorwarnung dazu. Das bedeutet, dass dasselbe, was beim Aufruf einer Funktion aufgerufen werden soll, dasselbe ist. Wenn wir hier einen Code ausführen, können Sie sehen, dass er Hello ausgegeben , weil x keine statische Variable war. Es war jedes Mal dasselbe, wenn dieser Code RAM, jedoch war ich eine statische Variable. Jedes Mal, wenn diese Funktion ausgeführt wurde, arbeitete sie mit derselben Variablen. Das erste Mal drucken wir fünf aus und das zweite Mal haben wir zehn ausgedruckt. Und das Grundlegende , an das man sich bei einer statischen Funktion erinnern sollte , ist, dass jede Instanz der Klasse dieselbe Funktion und dass sie nur statische Mitglieder und Funktionen verwenden kann. Und es gibt noch eine wichtige Sache, die man bei statischen Funktionen in Klassen beachten sollte. Und das liegt daran, dass die Funktion statisch ist und es keine neue Version davon pro Objekt oder Instanz der Klasse gibt. Sie können diese Funktion tatsächlich aufrufen , ohne ein Objekt zu erstellen. Was wir hier unten tun können, um den Dickdarm, den Dickdarm oder den Zielfernrohrlösungsoperator zu sagen . Und dann sag einfach print hallo. Und das wird gut funktionieren. Und los geht's. Ich wurde wieder um fünf erhöht, weil es eine statische Variable handelte und wir um eine statische Variable handelte und wir die Funktion verwenden konnten ohne irgendwelche Objekte zu haben. Das ist also echt cool. Nun, ich bin mir sicher, dass Sie sich bereits einige verschiedene Anwendungsfälle vorstellen können , wann Sie eine permanente Variable in einer Funktion haben möchten und wann Sie eine statische Variable in einer Klasse haben möchten. Zum Beispiel könnten wir dies verwenden, um eine Funktion zählen zu lassen, wie oft sie verwendet wurde. Und dann dasselbe für hier. Wir könnten einfach unsere statische Variable um einen und jeden unserer verschiedenen Konstruktoren für eine Klasse erhöhen . Und dann würden wir wissen, wie viele Objekte von dieser Klasse erstellt wurden. Und das ist nur ein Beispiel für Sie, für jeden von ihnen. Und dann haben wir bereits ein Beispiel dafür gesehen, wann Sie ein statisches Klassenobjekt verwenden möchten, bei dem wir eine Funktion erstellen konnten, die ein Objekt speziell in seinem Geltungsbereich erstellt hat ein Objekt speziell in seinem Geltungsbereich und mache jedes Mal etwas mit dem Objekt, wenn es ausgeführt wurde, ohne dass es außerhalb dieses Bereichs und ohne jedes Mal ein neues zu erstellen. Dann zuletzt statische Funktionen und Klassen. Einer der Hauptanwendungsfälle, Gründe für ihre Verwendung, ist genau hier, wo wir diese Funktion aufrufen können , ohne eine Instanz dieser Klasse zu erstellen. Das kann sehr nützlich sein. Wenn Sie zum Beispiel so etwas wie einen Mathematikunterricht hatten , benötigen Sie wahrscheinlich keine Instanz Ihres Mathematikunterrichts. Stattdessen möchten Sie vielleicht nur alle darin verfügbaren Funktionen nutzen . Und das wäre hier ein perfekter Anwendungsfall dafür. Wie auch immer, es gibt vier verschiedene Anwendungsfälle des Schlüsselworts static und einige Beispiele dazu sowie einige Anwendungsfälle. Wenn Sie das also in Zukunft sehen , verlieren Sie sich hoffentlich nicht ganz in was es ist und warum gibt es, und wer weiß? Vielleicht verwenden wir es sogar in einem Ihrer eigenen Programme. Wie auch immer, bevor wir dieses Video abschließen, werde ich einfach diese zusätzlichen Texte löschen , die wir in diesem Video erstellt haben. Lass es so sein, wie es war, als wir es angefangen haben. Wie auch immer, sieh es dir nicht an. danken fürs Zuschauen und wir sehen uns im nächsten. 92. Kapitel 15 (Kurse): Kurs gegen Struktur: In diesem Video werden wir über die Unterschiede zwischen Strukturen und Klassen in C plus plus sprechen über die Unterschiede zwischen . Nun, ich weiß, dass wir uns noch nicht einmal Strukturen oder Strukturen angesehen haben, aber glauben Sie mir, wenn Sie wissen, welche Klassen Sie im Grunde wissen, was für Strukturen. Lassen Sie uns also einen Blick auf die Syntax für beide werfen. Und dann sprechen wir über die tatsächlichen Unterschiede und warum Sie einen über den anderen verwenden sollten. Also die ersten beiden Kreditklassen, wie wir wissen, werden Sie so etwas wie Klasse sagen. Sie müssen geschweifte Klammern und ein Semikolon am Ende öffnen und schließen . Und eine Weile, um eine Struktur zu erstellen, sagst du struct, oder sie öffnen und schließen geschweifte Klammern und ein Semikolon am Ende. Und los geht's. Das ist die Syntax für eine Struktur. Und das ist die Syntax einer Klasse. Was ist also der Unterschied? Nun, was unsere Programmtheorie oder den Compiler betrifft, spielt das keine Rolle. Dies könnte genauso gut dasselbe sein abgesehen von einem wesentlichen Unterschied. Und lass dir von niemandem etwas anderes sagen, denn die kleinen kleinen Unterschiede unter der Haube werden wirklich keinen Unterschied machen. Was macht dieser eine entscheidende Unterschied aus? Nun, Klassenmitglieder, wenn Sie sich erinnern, sind standardmäßig privat und Strukturmitglieder standardmäßig öffentlich. Und los geht's. Das ist der Unterschied zwischen einer Klasse und einer Struktur. Also nur um hier auf dem Bildschirm zu verdeutlichen, die Mitglieder einer Klasse Zugriff haben. Die Mitglieder einer Struktur sind standardmäßig öffentlich. Übrigens, wenn ich über den Unterschied zwischen diesen spreche, beziehe ich mich nur auf C plus plus und die anderen Programmiersprachen. Also los geht's. Das ist wirklich der einzige Unterschied zwischen einer Klasse und einer Struktur, außer dass das Schlüsselwort hier struct oder eine Klasse entsprechend ist. Warum würdest du jemals eine Struktur über einer Klasse verwenden oder umgekehrt? Jetzt können Sie in allen technischen Aspekten die gewünschte verwenden. Cool. Wie gesagt, sie sind im Grunde dieselben, abgesehen von der Standardzugänglichkeit ihrer Mitglieder, die Sie sowieso jederzeit ändern könnten. Aber im Allgemeinen, wenn ein anderer Programmierer oder etwas anderes Ihren Code betrachten und einen Strich sehen würde, würde er annehmen, dass Sie im Grunde nichts Privates oder Verstecktes haben werden und dass so ziemlich alles darin öffentlich sein würde. Wenn Sie also eine Klasse erstellen möchten, ist es vielleicht eine Klasse für mathematische Funktionen oder ähnliches. Und alles wird einfach öffentlich und verfügbar sein und Sie haben keinen Grund, irgendwelche Informationen zu verbergen, dann machen Sie weiter und verwenden Sie eine Struktur. Andernfalls, wenn Sie vorhaben, Mitglieder zu haben , die privat oder geschützt sind, würde ich wirklich empfehlen, eine Klasse zu verwenden , und das ist genau wie eine herkömmliche Art Sache. Aber wie gesagt, und alle Formalitäten und C plus plus sind im Wesentlichen dasselbe, klar als dieser eine Unterschied. Verwenden Sie also, was Sie bevorzugen, aber das ist nur die herkömmliche Art, wie eine Struktur verwendet wird, wenn Sie nichts Privates oder Geschütztes haben . Wie dem auch sei, das war's für dieses Video. Also werde ich weitermachen und den Mantel löschen. Danke fürs Zuschauen und wir sehen uns im nächsten. 93. Kapitel 15 (Kurse): Verhindere die Erstellung von Basiskursen: In diesem Video werden wir darüber sprechen, wie wir unsere Basisklasse instanziiert oder glaubwürdig machen können . Derzeit können wir in unserem Code ein Animal Crossing erstellen und ihm dann einen Namen geben. Und dann folgen Sie dem mit einem Namen für das Tier wie ein funkelndes Beispiel und geben Sie ihm ein H. Also wird das gut laufen. Aber was wäre, wenn wir es so machen wollen, dass Sie nur eine Instanz eines Hundes oder einer Katze erstellen können eine Instanz eines Hundes oder einer , die unsere Klassen sind , die von Tieren oder den Unterklassen der Tierbasisklasse erben . Nun, es ist ziemlich einfach, aber wir müssen hier zu unserem Tierunterricht gehen. Und wenn wir das öffnen, können Sie unseren Konstruktor hier sehen. Und denkt daran, wie ich euch gesagt habe, dass ein Konstrukteur öffentlich sein muss. Nun, das war so, dass wir eine Instanz davon erstellen konnten , da der Konstruktor dafür verfügbar sein muss . Da wir in diesem Fall jedoch bereits Unterklassen wie Katze und Hund haben Unterklassen wie Katze und , mit denen wir arbeiten möchten, anstatt direkt mit Tieren, müssen wir nur unsere Konstruktordeklaration hier abschneiden . Und dann fügen wir protected als Zugriffsspezifizierer hinzu. Also sagen wir geschützte Kohlemine, einfach so. Und dann fügen wir direkt darunter einfach unseren Konstruktor ein. Und jetzt hat das einzige, was Zugriff auf diesen Konstruktor hat, die Klasse selbst und ihre Unterklassen oder irgendetwas, das von der Klasse Animal erbt. Und wenn wir jetzt versuchen, hier runter zu gehen und einfach ein Tier zu erschaffen, bekommen wir einen Fehler. Und das liegt daran , dass uns kein Konstruktor mehr zur Verfügung steht. Und los geht's. So können Sie einen Kurs über glaubwürdig machen. Aber denken Sie daran, dass Sie das wirklich nicht tun möchten, wenn Sie Unterklasse oder ähnliches haben, mit der Sie arbeiten können. Stattdessen. Wie dem auch sei, wir werden weitermachen und unseren Code vorerst so belassen. Also mach einfach weiter und speichere, was du hast. Danke fürs Zuschauen und wir sehen uns im nächsten. 94. Kapitel 15 (Kurse): Member für die Mitglieder: In diesem Video zeige ich Ihnen eine andere Form des Mitgliedszugangsoperators. Die, mit der wir bisher gearbeitet haben , war der Punkt, aber es gibt eine andere Version davon. Und ein Beispiel dafür, wann Sie dies sehen werden, wenn Sie mit Zeigern auf Klassen oder Strukturen arbeiten . Schauen wir uns also an, wie das funktioniert. Übrigens sieht der Operator so aus, was ein Strich und ein Größer-als-Symbol ist. Um das zu sehen, wir weiter und erstellen einen Zeiger auf eine Klasse. Und in diesem Fall lassen wir es einfach auf meine Katze zeigen. Also sagen wir Sternchen PTR für planar und setzen es gleich der Adresse von a. Ordnung, also wenn wir jetzt Cleaner ausdrucken , erstellen Sie eine neue Zeile. Und wir wissen, dass dies die Adresse meiner Katze ausdruckt , wo auch immer hier Einwände erhoben werden. Wir können diesen Zeiger jedoch auch verwenden, um Zugriff auf die Mitglieder dessen zu erhalten , worauf verweist. Und wie gesagt, dies ist nur ein Beispiel dafür wann Sie diesen Operator sehen könnten. Und wir werden nicht auf all die verschiedenen Zeiten eingehen, in denen du das sehen wirst. Aber wenn Sie interessiert sind, können Sie sich das gerne ansehen. Ich wollte Ihnen nur ein Beispiel dafür zeigen. Sie werden das sehen, sehen, dass Sie nicht völlig abgeworfen werden, wenn Sie diese Operatoren sehen. Und ich habe mich für dieses Beispiel entschieden, weil es gar nicht ungewöhnlich ist, Zeiger auf Objekte zu haben. Und dann hier unten, wenn wir PTR sagen und dann unseren Pfeil hier haben, oder einen Mitgliedszugangsoperator, können Sie sehen, dass ich sofort Zugriff auf alle unsere Mitglieder meiner Katze habe. Lass uns weitermachen und diese Fähigkeiten nutzen, um Hilfe zu holen. Und was dieser Mitgliedszugangsbetreiber tut, abgesehen davon, dass er uns Zugriff auf das Mitglied gewährt, ist, dass er auch gelöscht wird. Verweisen Sie hier darauf. Anstatt uns jetzt die Adresse zu geben, wird es nur helfen, Hilfe zu holen Wie wir wissen, wir einfach den Gesundheitswert meiner Katze zurück, der bei 100 begann, und wir subtrahieren ihn hier um 15. Wir haben das bereits als 85 auf den Bildschirm gedruckt. Also das hier wird auch 85 ausdrucken. Wenn wir einfach weitermachen und „So sehen“ sagen. Und wenn wir hier einen Code ausführen, können Sie sehen, dass wir die Adresse meiner Katze ausgedruckt haben. Und wir haben diese Funktion hier wie gewohnt ausgeführt. Und das liegt daran, dass dieser Mitgliedszugriffsoperator, wenn Sie mit Zeigern verwendet haben, uns nicht nur Zugriff auf das Mitglied gewährt, sondern auch auf die Referenzen darauf. Anstatt uns eine Adresse zu geben, verwenden wir dieses Mitglied einfach normal. Wie auch immer, dies ist nur ein Beispiel dafür , wann Sie diesen Operator sehen werden. Und wenn Sie interessiert sind, können Sie sich andere Anwendungsfälle dafür ansehen . Aber das ist derjenige, der in diesem Kurs durchgehen wird und der, den Sie wahrscheinlich am häufigsten sehen werden. Wie auch immer, ich werde weitermachen und diesen zusätzlichen Code entfernen . Vergiss nicht, sicher zu sein. hast du. Danke fürs Zuschauen und wir sehen uns im nächsten. 95. Kapitel 15 (Kurse): Polymorphismus: In diesem Video werden wir über unser viertes und letztes Hauptprinzip und/oder unsere Säule der objektorientierten Programmierung sprechen unser viertes und letztes Hauptprinzip und/oder unsere , den Polymorphismus. Und was Polymorphismus bedeutet, ist, viele Formen anzunehmen. Wie auch immer, schauen wir uns ein paar Beispiele für Polymorphismus an. Wenn wir also hier zu unserer Tierklasse gehen, erinnert ihr euch, wir haben diese Sprechmethode entwickelt. Und wenn wir uns die Definition davon ansehen, nimmt es nur einen Ton auf und druckt ihn aus. Derzeit haben wir jedoch nicht diese spezielle Version davon für unseren Hund und unsere Katze oder andere Kinderklassen und Unterklassen Vielleicht möchten wir diese von unserer Tierklasse erben . Derzeit müssen wir jedes Mal, wenn wir diese Funktion verwenden, eine bestimmte Zeichenkette einfügen wenn wir diese Funktion verwenden, eine bestimmte Zeichenkette und dann den Ton eingeben, den das Tier jedes Mal speziell macht , wenn wir es verwenden , ist nicht sehr effizient. Also lasst uns weitermachen und das mit Polymorphismus beheben. Das erste, was wir tun werden, ist einfach diesen Umkreis komplett zu entfernen. Ordnung? Und es wird einfach so Tiergeräusche ausdrucken. Ordnung, und der Grund, warum wir diesen Fehler erhalten , ist, dass wir oben in unserer Deklaration hier auch den Parameter entfernen müssen. Eine Möglichkeit, unser ursprüngliches Problem jetzt mit unserem Hund und unserer Katzenklasse zu beheben , besteht darin, Folgendes zu tun. Zuerst können wir einfach weitermachen und diese gesamte Funktion kopieren und sie so in jede von ihnen einfügen. Und jetzt bei beiden müssen wir nur noch diesen Tieranteil hier entfernen. Jetzt heißt es nur noch void speak und ich werde einfach weitermachen und diese Kommentare auch entfernen. Denken Sie daran, normalerweise was Sie tun möchten. Habe die Deklaration hier und die Definition außerhalb der Klasse. Aber wir machen einfach weiter und lassen es jetzt so . Und unser Beispiel wie auch immer, was wir jetzt tun können, ist in unserer Hundeklasse hier, ändere sie einfach in Park und unsere Katzenklasse hier, wir können das einfach ändern und sagen: Ja, das würde gut funktionieren. Wenn wir also hier runter gingen, drucken wir einfach ein paar leere aus. Dann unten wird meine Katze sprechen. Und wenn Sie sich erinnern, bevor wir diese Funktionen außer Kraft gesetzt haben, hätte dies einfach unsere Definition verwendet , die sich in der Basisklasse befand. Aber jetzt, da wir sie außer Kraft gesetzt haben , können wir Folgendes tun. Also sag, mein Hund spricht jetzt nicht und führe unseren Code hier aus. Sie können sehen, dass wir ausgedruckt haben und bellen. Und nur um Sie an eine erneute Show zu erinnern , wie das vorher funktioniert hat, wenn wir weitermachen und einfach unsere Implementierung für die cat-Klasse entfernen unsere Implementierung für und unseren Code erneut ausführen. Sie können sehen, dass dort nur Tiere erklingen und dann markieren, richtig? Obwohl das hier funktioniert, ist das Problem, dass es wirklich menschliches Versagen zulässt. Denn jetzt müssen wir jedes Mal , wenn wir eine Kinderklasse haben, deren Elternklasse Tier ist, daran denken, eine Implementierung der Sprechmethode zu haben . Andernfalls heißt es nur , dass Tiere sprechen, was überhaupt nicht ideal ist. Wir möchten, dass jedes einzelne Tier einen anderen Sound hat , der in die Klasse integriert ist. Und normalerweise, wenn Sie eine Funktion wie diese überschreiben und die Basisklasse in diesem Fall animal ist, hat sie ihre eigene Implementierung. Was Sie tun möchten, ist diese Implementierung tatsächlich zu einer virtuellen Funktion zu machen . Und ich zeige Ihnen in einer Sekunde hier, was das ist und warum. Wenn wir also hier zu unserem Hauptcode gehen und einen Zeiger auf unsere Basisklasse erstellen. Wenn wir also Tier Astros sagen, nennen wir das Tierblinker. Und wir setzen es gleich der Adresse meiner Katze. Der Grund, warum das funktioniert, und Sie können sogar ein Tier in einem Funktionsumfang anfordern und meine Katze als Argument verwenden , ist das Folgende. Und das ist eigentlich eine andere Form des Polymorphismus, denn unsere Katze ist ein Tier, dann wissen wir, dass alles, zu dem das Tier Zugang hat, Katze Zugang hat. Wenn wir also zum Beispiel ein Tier in einer Funktion angefordert haben und einige verschiedene Tierfunktionen ausführen und einige der verschiedenen Variablen innerhalb eines Tieres durcharbeiten . Nun, wir wissen bereits, dass Katze all diese Dinge implementiert hat , weil unsere Katze ein Tier ist , das sieht, das vom Tier erbt, und daher nimmt es verschiedene Formen an. Ein Hund ist nicht nur ein Hund, sondern ein Tier. Katze ist nicht nur eine Katze. Es ist auch ein Tier. Wir können Tiere jedoch nicht als Implementierung für Hunde oder Katzen verwenden als Implementierung für Hunde oder Katzen , da nicht alle Tiere Katzen sind, sondern alle Katzen Tiere. Es funktioniert also nur auf die eine Weise. Deshalb sagen wir hier unten, in Ordnung, funktioniert, kann ich einen Zeiger auf ein Tier erstellen und das Tier fangen? Das funktioniert also. Ordnung, aber das Problem dabei ist, wenn ich Tierkrater sagen würde, dann benutze unseren Mitgliedszugangsoperator. Denken Sie daran, für welche Zeiger Sie einen Strich und ein Größer-als-Symbol verwenden werden. Es sieht aus wie ein Pfeil und dann sag sprechen. Und führe unseren Code aus. Sie können sehen, dass ein festgelegtes Tier klingt, etwas Bellen, was ab sofort Sinn macht. Aber auch wenn unsere Katze hier eine Implementierung von Speak hatte. Also lasst uns weitermachen und das hier wieder in unsere Katzenklasse bringen und es in Miau ändern. Wenn wir dann unseren Code erneut ausführen, können Sie sehen, dass wir ein seltsames Ergebnis erhalten. Und das liegt daran, dass unser Zeiger hier, der auf Speak zugreift , tatsächlich auf die Basisklassenversion verweist. Während wir hier unten, wo wir speziell unsere Katzenobjekte verwendet haben, die abgeleitete Klasse oder unsere untergeordnete Klassenversion verwenden, und das ist möglicherweise nicht immer das, was Sie wollen. Schauen wir uns also an, wie wir diese beheben können. Wenn wir also hier in unsere Basisklasse gehen, Tier sein und hier zu unserer Sprechfunktion gehen. Was wir tun werden, ist das virtuelle Schlüsselwort davor zu setzen . Und das müssen wir nur in der Erklärung tun. Und was dieses virtuelle Schlüsselwort hier bewirkt , ist im Grunde explizit zu sagen, dass Unterklassen unserer Tierklasse eine eigene Implementierung dieser Funktion haben sollen . Und wir können unsere grundlegende Implementierung immer noch hier belassen. Allerdings lassen wir unser Programm jetzt hier. Hey, wir wollen, dass jede Klasse, die von Animal stammt , ihre eigene Implementierung dieser Funktion hat, weshalb wir sie zu einer virtuellen Funktion gemacht haben. Das ist es, was das tut, ist nur explizit zu sagen: Hey, wir wollen, dass Unterklassen unserer Superklasse oder untergeordnete Klassen unserer übergeordneten Klasse ihre eigenen Versionen dieser Funktion erstellen. Wenn wir jetzt unseren Code ausführen, können Sie sehen, dass er jetzt Miau und unseren Zeiger hier ausgibt . Und dann, da die Referenzierung unserer Sprechfunktion jetzt mit der Subklassenumkehr funktioniert. Und das liegt daran, dass wir ausdrücklich gesagt haben: Hey, wir möchten, dass unsere Unterklassen ihre eigene Implementierung dieser Funktion haben . Und ich werde nicht auf das Wesentliche eingehen, warum das so funktioniert. Aber wissen Sie nur, ob Sie eine Funktion in der Basisklasse haben möchten, die überschrieben wird , und Ihre Unterklassen, dass Sie das virtuelle Schlüsselwort hinzufügen möchten. Und denken Sie an alles, was wir in der Deklaration und unserer Basisklasse mit Ritualen zu tun hatten , aber nicht in der Definition hier unten. Nur um Ihnen das schnell zu zeigen, hatte FOR cat zum Beispiel keine eigene Implementierung. Das würde immer noch gut funktionieren. Okay, also wird es ihm nicht aufgezwungen, aber wir haben immer noch ein Problem in dem Fall, dass wir wollten unsere Basisklasse keine eigene Implementierung hat. Und wir wollten jede Unterklasse dazu zwingen, ihre eigene Implementierung zu haben und uns keine Sorgen machen zu müssen, dass wir sie vergessen. Das reicht einfach nicht. Dies ist möglicherweise nicht immer der Fall. Unter bestimmten Umständen möchten Sie vielleicht, dass die Basisklasse eine die Basisklasse eigene Implementierung hat, wie wir es hier getan haben. Aber falls Sie das nicht tun, lassen Sie mich Ihnen zeigen, wie wir das beheben können. Anstatt hier nur eine virtuelle Funktion zu haben, können wir tatsächlich eine rein virtuelle Funktion erstellen. Lassen Sie mich Ihnen zeigen, wie das gemacht wird. Zunächst einmal werden wir einfach die Definition für Geschwindigkeit entfernen, die völlig religiös ist und sie loswerden kann. Dann hier oben in unserer Deklaration werden wir nach den geschlossenen Klammern sagen, aber vor dem Semikolon sagen wir gleich 0. Und jetzt ist das eine rein virtuelle Funktion. Und jetzt, da wir eine rein virtuelle Funktion in einer regulären virtuellen Funktion gesehen haben , gibt es nur ein paar Dinge, die Sie beachten sollten. Zunächst einmal können rituelle Funktionen nicht statisch sein, okay, kann also nicht die einzige Version dieser Funktion sein , weil du sagst: Hey, ich möchte, dass meine Unterklassen ihre eigene Version davon haben, okay, also daher ergibt es keinen Sinn. Eine virtuelle Funktion kann auch eine Freundesfunktion einer anderen Klasse sein , und wir werden in einem kommenden Video auf Friend-Funktionen und -Klassen eingehen. Nur etwas zu beachten. Mach dir darüber jetzt keine Sorgen. Was ist also eine rein virtuelle Funktion? Nun, wir können sagen, dass wir es auf 0 setzen wollen. Wir sagen, dass diese Funktion keine Definition hat. Es könnte genauso gut nicht existieren. Daher muss jede Unterklasse ihre eigene Version haben. Und Sie fragen sich vielleicht, warum wir nicht einfach eine Leere losgeworden sind, hier vollständig gesprochen und sie einfach in jede Unterklasse geworfen haben, wie unseren Hund, unsere Katze. Wenn wir ein anderes erschaffen würden, wie eine Schlinge oder ein Pferd usw. Nun, für einen könnten wir es vergessen, und dann hat vielleicht nicht jedes Tier eine Sprechfunktion. Wenn wir zum Beispiel eine Methode oder eine Funktion erstellen würden, die ein Tier als Umkreis verwendet, könnten wir die Sprechfunktion nicht mehr verwenden, da unsere Funktion nicht mehr weiß, ob jedes Tier sprechen kann weil das nicht innerhalb der Tierklasse definiert ist, oder? Deshalb möchten Sie das von vornherein hier haben. Dann, wie gesagt, entfernt es einfach menschliches Haar. Wenn wir jetzt zu unserer Hundeklasse gehen, haben wir bereits eine Implementierung der Liste. Unsere Katzenklasse tut dies jedoch nicht. Und wie Sie sehen, gibt uns das sofort einen Fehler. Dies ist ein Objekt eines abstrakten Klassentyps. Cat ist nicht erlaubt , da es eine rein virtuelle Funktion gibt. Nun ist eine abstrakte Klasse eine Klasse, von der Sie kein Objekt direkt erstellen können. Wir können das Tier also nicht mehr sagen. Mein Kurs zum Beispiel und gib ihm einen Namen wie Jack. Und ein Zeitalter. Das wird nicht funktionieren, da es sich um eine abstrakte Klasse handelt. Und der Grund, warum es abstrakt ist , ist, dass es darin eine Funktion gibt , die keine Definition hat. Es existiert im Grunde nicht und Unterklassen müssen die Definition dafür erstellen. Daher können wir keine Objekte darauf erstellen, in einer abstrakten Klasse ist nur eine Klasse, die eine reine virtuelle Funktion hat. Da diese Funktion keine wirkliche Definition hat, können wir kein Objekt dieser Klasse erstellen , da es jetzt eine Funktion hat , die nicht definiert ist. Ordnung? Eine rein virtuelle Funktion für einen zu haben , macht die Klasse glaubwürdig, was wir schon irgendwie tot sind, indem wir unseren Tierkonstruktor schützen lassen. Aber selbst wenn dies öffentlich wäre, wäre es immer noch nicht erstellbar, nur wegen unserer rein virtuellen Funktion hier, es wird jetzt als abstrakt angesehen, in einer Sache zu beachten, für diejenigen unter Ihnen, die kommen aus anderen Programmiersprachen, besonders für euch, sowie das, wenn jedes Mitglied der Klasse rein virtuell ist und es keine eigene Implementierung von etwas gibt. Diese Klasse wird jetzt als Schnittstelle für andere Dinge betrachtet Schnittstelle für andere Dinge , da sie keine Definition von irgendetwas hat. Es sind nur Erklärungen. Es hat also eine sogenannte Schnittstelle, die im Wesentlichen nur eine Blaupause für alles ist. Und Haritsa mit einer rein virtuellen Funktion ist eine abstrakte Klasse. Und wenn alles und es wäre rein virtuell, wäre es eine Schnittstelle, die sowieso als Schnittstelle betrachtet wird, wie Sie gesehen haben, weil wir diese rein virtuelle Funktion haben, gibt es keinen Raum für menschliches Versagen beim Erschaffen verschiedener Tiere. Als wir hier unseren Hund kreierten, von dem wir sagten, dass er ein Tier oder unsere Katze, dass sie ein Tier war, usw. Jedes Tier, das wir erschaffen, muss jetzt eine Version der Sprechfunktion haben, oder? Weil es keine Definition für sich allein gibt. Und technisch gesehen könntest du es so lassen. Und dies wird jetzt im Wesentlichen als abstrakte Klasse betrachtet , weil sie eine Funktion ohne Definition hat. Und dann können Sie eine Klasse haben, die von cat stammt oder von cat erbt. Und irgendwann müsste einer von ihnen eine Definition für Speak haben, weil man kein Objekt einer Klasse haben kann, das eine rein virtuelle Funktion oder Methode hat eine rein virtuelle Funktion oder , weil es uns das jetzt nicht erlaubt, Lautsprecher jetzt korrekt implementiert. Also sagte er, jedes Tier müsse sprechen und seine eigene Art haben, wie es spricht. Also hier unten in unserer Klasse fügen wir unsere Sprechmethode ein. Und nur um die Dinge richtig zu machen, lass uns das jetzt in Ordnung bringen. Also sagen wir void speak, Semikolon, einfach so. Und es wird diesen Umschlag kopieren, eine Hundeklasse, zum Beispiel hier. Dann sagen wir für die Wörter Schnabel Hund, Doppelpunkt, Doppelpunkt sprechen und dort zum Semikolon, einfach so. Und entfernen Sie unsere Definition hier oben, genau wie wir es mit all unseren anderen Funktionen getan haben, wie ich bereits sagte, und das ist der richtige Weg, das zu tun. Also kopieren wir das noch einmal, Semikolon am Ende, um die Deklaration zu erstellen. Schneiden Sie dies aus und schreiben Sie die Definition unten ein. Und ich werde es hier tatsächlich unter unseren Konstruktor legen . Dies wird die Erosion des Sprechens durch Katzen sein. Übrigens, falls ich vergessen habe, es vorher zu erwähnen, in unseren Konstruktoren hier, wo wir unseren Tierkonstruktor hatten, hier ist der Basisklassenkonstruktor. Dies muss an erster Stelle stehen, bevor irgendetwas anderes in unserer Liste es hier initialisiert. Aber wie gesagt, alles im Listeninitialisierer muss eine Reihenfolge von oben nach unten sein , und ein Basisklassenkonstruktor muss an erster Stelle stehen. Also wollte ich Ihnen nur einen Hinweis darauf geben , falls ich vergessen habe, es zu erwähnen. Und dann hier unten in unserer Caps-Definition für Geschwindigkeit, ändern wir sie, um unseren Code auszuführen. Los geht's, alles funktioniert einwandfrei. Jetzt verwendet unser Tierzeiger , der auf unsere Katze zeigt, die richtige Version davon. Und wir könnten sogar unseren Zeiger auf meinen Hund ändern, und das würde alles gut funktionieren. Und darüber hinaus ist es uns jetzt nicht möglich, ein neues Tier oder eine Unterklasse von Tieren zu erschaffen eine Unterklasse von , die keine eigene Version von Speak hat. Ordnung, das ist fantastisch. Alles läuft und funktioniert. Und dies war das letzte Beispiel Polymorphismus, auf das wir eingehen werden, da unsere Sprechfunktion jetzt mehrere Versionen davon hat, oder? Denken Sie daran, Polymorphismus bedeutet, dass viele Formen annehmen , sozusagen nicht nur ein reines Ritual ist, eine Funktion ohne Definition, sondern es hat eine eigene Version innerhalb unserer Hundeklasse und es hat seine eigene Version innerhalb ihrer Katzenklasse. Es gibt also ein paar Beispiele für Polymorphie für Sie. Ordnung? Wir haben gelernt, was eine virtuelle Funktion ist, die nur eine Funktion ist Sie ausdrücklich gesagt haben, dass Sie die Unterklassen verwendet haben, um ihre eigene Version davon zu haben. Wir haben uns auch angeschaut, wie man eine rein virtuelle Funktion erstellt, die durch Setzen dieser Funktion auf 0 erstellt wurde, und sagen im Grunde, dass sie nichts ist. Es existiert momentan nicht. Und entferne die Definition, die nicht nur die Klasse automatisch abstrakt macht, sondern wenn alles rein virtuell in der Klasse wäre, wäre es das, was als Schnittstelle bezeichnet wird , im Grunde eine Blaupause für alles, was in einer rein virtuellen Funktion davon erbt , verglichen mit einer regulären virtuellen Funktion, die so aussehen würde, ist nur eine Funktion , die jetzt eine Definition benötigt innerhalb einer Klasse erstellt werden, die von ihr abgeleitet ist. Und wenn unsere Hundeklasse keine Version davon hätte, könnten wir auch keinen Hund erschaffen. Es bedarf einer Definition zu einem bestimmten Zeitpunkt. Dann müssten wir Hunderassen als Klassen oder so haben und ihr dort eine Definition geben. Irgendwann braucht es eine Definition damit Sie Objekte jeder Klasse erstellen können, die von Tieren abgeleitet ist, oder? Wir haben auch gelernt, dass jede Unterklasse oder untergeordnete Klasse ebenfalls als Basisklasse betrachtet wird, aber nicht jede übergeordnete Klasse als untergeordnete Klasse. Und nur eine Erinnerung in unserem Beispiel, das ist im Grunde so, als würde man sagen, dass jeder Hund ein Tier ist, aber nicht jedes Tier ist ein Hund. Und nur um Ihnen schnell einen anderen Weg zu zeigen könnte ich ein Beispiel dafür haben. Wir können eine Funktion wie diese geschaffen haben, Void Animal oder so etwas sagt. Und dann als Parameter, weil sie ein Tier und ein Tier sein können. Hier drinnen hätten wir sagen können: Tier, stirb, rede. Wie Sie sehen, ist ein Fehler aufgetreten. Und das liegt nur daran, dass Animal derzeit eine abstrakte Klasse ist. Lassen Sie uns das hier oben schnell beheben und dies von einer rein virtuellen Funktion in eine reguläre virtuelle Funktion ändern einer rein virtuellen Funktion . Und wir geben ihm eine schnelle Definition wie diese, einfach so. Wenn wir jetzt hier runter gehen, lassen Sie mich sagen, dass wir falsch sprechen und leidenschaftlich sind, entweder unsere Katze oder unser Hund. Also lasst uns einfach eine leidenschaftliche Katze bekommen. Und wie Sie sehen können, wenn wir unseren Code ausführen und tatsächlich druckt er nach dem Bellen nichts mehr aus. Und das liegt daran, dass diese tatsächlich Tierversion dieser Funktion verwendet hat, da wir eine Kopie der Katzenwerte erstellt und sie im Wesentlichen in ein Tier eingefügt haben. Aber um das zu beheben, müssen wir nur einen Hinweis auf das Tier Peston nehmen , und jetzt wird das einwandfrei funktionieren. Wenn wir also unseren Code erneut ausführen, geht es los. Es druckt es aus. Ja. Und wie gesagt, weil ein Hund auch ein Tier ist, hätten wir auch meinen Hund übergeben können. Und unser Code und unsere Funktion hätten genauso funktioniert , außer dass er jetzt Rinde ausdruckt. Also los geht's. Also los geht's. Hoffentlich haben Sie jetzt ein grundlegendes Verständnis des Polymorphismus in einigen der verschiedenen Verwendungsmöglichkeiten, zusammen mit einigen verschiedenen Schlüsselwörtern, die dazu gehören. Also haben wir uns abstrakte Klassen und Interfaces angesehen. Wir haben uns auch mit der Erstellung virtueller Funktionen befasst , die ihre eigene Implementierung haben und sagen es ausdrücklich so. Welche Unterklassen erstellen ihre eigenen Versionen davon in rein virtuellen Funktionen, die im Grunde sagen, dass es keine Definition gibt und Unterklassen ihre eigene Version davon erstellen müssen. Und die Unterklassen, unsere Basisklassen, diese Basisklassen sind nicht unbedingt Unterklassen. Wir hätten also keine Katze als Parameter nehmen und ihnen ein Tier schicken können. Wie dem auch sei, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 96. Kapitel 15 (Kurse): Vier Hauptprinzipien Der OOP: In diesem Video werden wir uns erneut mit den vier Hauptsäulen oder Prinzipien der objektorientierten Programmierung befassen. Und diese sind in keiner bestimmten Reihenfolge. Ein weiterer Hinweis ist, dass wir nicht jeden möglichen Aspekt jeder dieser vier Hauptsäulen behandelt haben, aber wir haben die Grundlagen behandelt und der Kern davon aufgeteilt, Sie wissen, was sie sind und wie und wann Sie können sie in Ihre eigenen Programme implementieren. Das erste Mal werden wir über Umweltverschmutzung sprechen. Und wenn Sie sich erinnern, ist Kapselung, wenn Daten von außen verborgen werden, indem sie in zugänglichen Funktionen eingekapselt werden. Ein Beispiel dafür, als wir das gemacht haben, war, als wir unsere Getter- und Setter-Funktionen hatten , die helfen, dass alle unsere privaten Variablen in ihnen private Variablen sind, die in unserem Getter eingekapselt wurden und Setter-Funktionen. Ordnung, das ist also unser erster. Dann sprechen wir über Abstraktion. Und im Grunde kann man sich das als fast eine Erweiterung der Kapselung und Abstraktion vorstellen fast eine Erweiterung der Kapselung und , wenn man dem Benutzer nur relevante Daten oder Informationen zeigt . Wenn Sie beispielsweise Ihr Telefon einschalten oder eine Anwendung öffnen, nur die relevanten Informationen angezeigt. Und ein Beispiel dafür, als wir das gemacht haben, ist, als wir unseren Getter und Setter hatten, Sie nicht wissen, was sich in diesem Codeblock befand wie genau es sich auf unsere privaten Variablen auswirkte. Alles was Sie wissen müssen, was der Funktionsname und die Parameter sind. Alles andere ist gerade im Hintergrund passiert. Zum Beispiel, als wir unsere Gesundheitsvariable hatten und Sie dadurch nicht über 100 oder unter 0 gehen konnten. Der Benutzer musste nichts davon wissen. Wenn wir den Bauern unsere Funktionen aufrufen, um unsere Gesundheitsvariable zu ändern oder festzulegen, müssen wir nur den Funktionsnamen und was die Einfügung als Umfang bezeichnen den Funktionsnamen und was die Einfügung und alles andere abstrahiert wurde. von uns. Es war im Hintergrund versteckt. Das war also Abstraktion. Als nächstes haben wir Vererbung als im Grunde genommen, wenn etwas von etwas anderem erbt. In der Programmierung ist Vererbung beispielsweise, wenn Sie Mitglieder von etwas anderem erben Mitglieder von etwas anderem Auf diese Weise können Sie Ähnlichkeiten in einer übergeordneten Klasse finden. Zum Beispiel konnten wir in unserer Tierklasse, die irgendwie definiert hat, was ein Tier ist, die irgendwie definiert hat, was ein Tier ist, Dinge wie eine Sprechfunktion haben, eine Gesundheitsvariable namens Variable. Wir konnten die Grundlage dafür schaffen, was ein Tier war. Und dann können wir Dinge davon erben , um irgendwie zu bleiben, hey, das ist ein Tier. Es wird also alles haben , was alle Tiere haben. Und dann kann es auch seine eigene Identität haben , seine eigene Einzigartigkeit. So haben zum Beispiel unsere Katzen- und Hundetiere verschiedene Dinge ausgedruckt. Als sich unsere Katze äußerte und wenn die Dunkelheit bellte und als sie erschaffen wurde, hatte sie etwas andere Dinge ausgedruckt, die besagten, dass entweder ein Katalysator geschaffen wurde oder ein Hund, der erschaffen wurde. speziell. Aber eines hatten sie alle gemeinsam: die Elternklasse oder die Tierklasse, die wir geschaffen haben, oder? Und das war ein Beispiel dafür, dass zwei Klassen von einer Basisklasse erben. Und denken Sie daran, es gibt eine Menge anderer Dinge, die Sie vielleicht sehen, dass Kinder- und Elternklassen genannt werden, aber oft werden Eltern- und Kinderklassen häufiger verwendet. Und es ist einfach , darüber nachzudenken. Weil Kinder zum Beispiel Dinge von ihren Eltern erben. Das ist also eine einfache Verbindung im wirklichen Leben. Und schließlich haben wir Polymorphismus. Und was Polymorphismus bedeutet, ist, viele Formen anzunehmen. Und wir haben uns im letzten Video nur einige Beispiele dafür angesehen . Einige Beispiele dafür wann wir Polymorphismus verwenden, sind übergeordnete Funktionen. Außerdem haben wir Unterklassen als Basisklasse verwendet. Zum Beispiel haben wir eine Katze und einen Hund als Ersatz für einen Tierumfang verwendet , weil wir wissen, dass alles und ein Tier alles kann. Eine Katze und ein Hund können dies auch tun, weil sie dieselben Mitglieder und mehr erben. Und dann einige andere Beispiele dafür , die wir uns angesehen haben , wo unsere virtuellen und reinen virtuellen Funktionen, die ausdrücklich besagten, Hey, ob diese überschrieben werden und es andere Implementierungen dieser Funktion. Wie auch immer, los geht's. Dies sind die vier Hauptprinzipien oder Säulen und nicht eine Säule objektorientierter Programmierung. Sie haben also Verkapselung, Abstraktion, Vererbung und Polymorphie. Ich weiß, dass viele Anfängerkurse nicht alle vier berühren. Aber persönlich ist das Sehen die vier Hauptprinzipien der objektorientierten Programmierung. Ich kann mir einfach nicht vorstellen, diese aus einem Anfängerkurs auszulassen , vor allem, weil man oft, wenn man einen Anfängerkurs über Programmierung abgeschlossen hat, rausgeht und einfach anfängt zu arbeiten Ihre eigenen Programme und versuchen Sie einfach, so viel wie möglich mit dem zu tun , was Sie wissen und wie Sie Code von guter Qualität in einer objektorientierten Programmiersprache erstellen werden Code von guter Qualität in einer objektorientierten Programmiersprache erstellen einer objektorientierten Programmiersprache wenn Sie es nicht einmal wissen Die vier Hauptprinzipien der objektorientierten Programmierung hoffen jedenfalls, dass Ihnen das Video wie immer gefallen hat, danke fürs Ansehen, und wir sehen uns im nächsten. 97. Kapitel 15 (Kurse): Funktionen und Kurse für die Freundschaft: In diesem Video werden wir über Friend-Funktionen und -Klassen in C plus plus sprechen . Zunächst werde ich Ihnen sagen , was eine Freundesfunktion und eine Freundesklasse ist. Ich werde es mir ansehen und ein Beispiel für beides erstellen. Eine Friend-Funktion ist eine Funktion, die auf die privaten und geschützten Daten einer Klasse zugreifen kann . Und eine Freundesklasse kann auf private und geschützte Daten oder Mitglieder einer anderen Klasse zugreifen . Wie auch immer, lassen Sie uns weitermachen und ein Beispiel für eine Freundesfunktion und eine Freundesklasse erstellen und betrachten . Ordnung, also oberhalb unserer Hauptfunktion, lass uns weitermachen und eine Klasse erstellen, und wir nennen diese Klasse einfach. Wir werden unseren Codeblock so haben. Und vergiss nicht das Semikolon am Ende. Jetzt ist foo oft ein generischer Name , den Sie in Beispielen häufig sehen werden. Es ist einfach ein gewöhnlicher Platzhaltername. Also machen wir einfach weiter und verwenden das, um Ihnen ein Beispiel dafür zu zeigen , wie Sie das sehen könnten. Im Moment zeige ich Ihnen ein Beispiel für etwas. Ich sage Klasse. Und hier drinnen mit ziemlich hoher Variable. Also sagen wir privat, einfach so. Und dann Dumbo das. Wir sagen einfach int x und wir werden das eigentlich einfach initialisieren. Ich weiß, dass Sie das normalerweise separat haben möchten, aber nur um dieses Beispiel auf den Punkt zu bringen, werden wir uns darüber keine Sorgen machen. Und dann erstellen wir außerhalb der Klasse eine Funktion , die x ausgibt . Also sag void, print x. Und dann haben wir in Klammern hier einen Parameter, der ein Foo-Klassenobjekt akzeptiert. Also speichere, und wir nennen das dort einfach Kleinbuchstaben. Dann wird innerhalb unseres Codeblocks sagen, foo got x. Nun, wie wir wissen, sind private und geschützte Variablen außerhalb der Klasse nicht zugänglich. Und Freundesfunktionen sowie Freundesklassen sind weder Mitglieder der Klasse , mit der sie befreundet sind, noch sind sie Unterklassen davon, sie sind völlig getrennt. Um unsere Funktion jedoch als Friend-Funktion zu deklarieren, müssen wir dies innerhalb der Klasse selbst angeben. In unserer Foo-Klasse hier werden wir also im Grunde nur etwas haben, das wie eine Deklaration oder ein Prototyp unserer print x-Funktion aussehen würde . Also kopieren wir einfach die ganze Zeile und fügen sie hier ein. Vergiss nicht unser Semikolon hier am Ende. Wie Sie sehen können, dies nur noch zu einer Freundesfunktion machen, müssen Sie dies nur noch zu einer Freundesfunktion machen, indem Sie das Schlüsselwort friend vor einer Lücke hier hinzufügen , einfach so. Und jetzt, wie Sie sehen können, funktioniert das einwandfrei. Wenn wir also zu unserer Hauptfunktion gehen und dann einfach unsere print x Funktion aufrufen, drucken Sie x und y. Ich muss hier foo einfügen und implementieren . Also nennen wir es. Dann schicken wir das einfach. Genau hier. Da haben wir's. Wir konnten mit unserer Freundesfunktion auf dieses private Mitglied zugreifen . Und beachte, dass wir nur Friend und diese Zeile genau hier platzieren mussten und nicht die eigentliche Funktionsdeklaration dort. Eine Freundesfunktion könnte übrigens mehrere Freunde haben. Um Ihnen das zu zeigen, lassen Sie uns weitermachen und alles entfernen. Du nicht? Denke an unsere Funktion und unsere Freundesfunktionsdeklaration Dann ändern wir die Klasse foo in class, kopieren sie und fügen sie unten ein. Und wir nennen das eine Klasse A, Klasse B, eine private Ganzzahl. Wir nennen das einfach „y“, nur zum Teufel. Und wir setzen das auf zehn. Dann unten erstellen wir unsere Funktion, sagen wir void, und dann die Pay-Klasse ein Objekt und wir nennen diese Klasse be object und nennen sie b. Dann machen wir daraus einen Freund dieser beiden Klassen. Kopieren Sie einfach diese oberste Zeile hier, fügen Sie sie ein, setzen Sie ein Semikolon am Ende und fügen Sie das Schlüsselwort hinzu. Dann können wir das einfach kopieren und so einfügen. Und dann innerhalb unserer Funktion hier, ein x plus b y, einfach so. Beachten Sie jetzt, dass auf diesen nicht zugegriffen werden kann, und ich werde Ihnen gleich zeigen, warum . Aber bevor ich das in unserer Hauptfunktion mache, erstellen wir eine Instanz beider Glossen. Und denk dran, wir können es so benennen, wie du willst. Es spielt keine Rolle. Unsere Perimeternamen werden getrennt sein. Also könnte ich sagen, eine B- und eine kleine Funktion zum Hinzufügen von Farben. Da es zu nichts gehört. Wir müssen nicht angeben, woher es stammt. Und dann sag einfach, setze kein Semikolon am Ende. Und das würde gut laufen, wenn wir diesen Fehler hier behoben haben. Der Grund, warum wir das bekommen, ist, dass Klasse a nicht weiß, was Klasse B ist, wenn sie unseren Code hier liest. Und wir können das mit einer sogenannten Forward-Deklaration beheben . Und wir setzen das hier oben rechts über unserer Klasse A. Und alles, was wir als Klasse machen werden und setzen am Ende ein Semikolon. Und das wird alles reparieren. Und wie gesagt, das nennt man Forward Declaration. Wir haben Beispiele dafür gesehen, als wir einen Funktionsprototyp hatten und dann die Definition unten, außer dass dies nur dasselbe mit einer Klasse machte. Wir sagen im Grunde, hey, es wird eine Klasse namens B- und R-Code sein und jetzt ist eine Klasse nicht verwirrt. Wie Sie sehen können, ist der Fehler verschwunden und wir können unseren Code ausführen, 15 ausgeben, weil unsere Funktion add und Zugriff auf die private Variable x und auf die private Variable y haben. Wir können diese beiden X nennen Es wäre wirklich egal gewesen. Also los geht's. Es gibt einige Beispiele für Freundesfunktionen, bei denen es sich nur um Funktionen handelt , die Zugriff auf private und geschützte Mitglieder der Klasse oder Klassen haben private und geschützte Mitglieder der , mit denen sie befreundet sind. Und dann haben wir Freundesunterricht. Das zeige ich dir jetzt. Und um das zu tun, gehen wir zur Klasse I und entfernen einfach unsere Freundesfunktion hier ganz, so. Und dann sagen wir Freundesklasse, einfach so. Und jetzt hat Klasse B Zugriff auf die privaten und geschützten Mitglieder der Klasse. Und wir machen weiter und entfernen jetzt einfach unsere Freundesfunktion ganz. Und wir werden es in unserer Hauptfunktion hierher verschieben. Und dann erstellen wir in Klasse B hier eine Funktion, um x und y hinzuzufügen. Also sag void add i. Normalerweise würden wir die Definition hier nicht in die Klasse setzen wollen . Aber um die Dinge einfach zu halten, werden wir weitermachen und das tun. Dann sagen wir hier eine Farbe. Ich sage y plus x. Und weil Klasse B als Freund, sagen wir, wie hier angegeben. Und wieder kann eine Klasse mehrere Freunde haben, genau wie ihre Funktionen. Es hat Zugriff auf private Variablen innerhalb der Klasse sowie auf protected, obwohl es überhaupt keine Unterklasse der Klasse a oder Teil von Klasse A ist. Also haben wir eine Instanz der Klasse erstellt, sagen wir, innerhalb von Klasse B, genau wie wir es mit unserer Friend-Funktion gemacht haben, da wir immer noch eine Instanz der Klasse brauchten, mit der wir arbeiten konnten. Und jetzt können wir in unserer Hauptfunktion weitermachen und all das hier loswerden und einfach B sagen und es B nennen oder was auch immer du willst. Und dann unten wäre das so mit dem Semikolon am Ende. Sie müssen tun, um diesen Fehler hier zu beheben , auf den wir nicht zugreifen können, ist unsere Funktion öffentlich zu machen, öffentlich. Ich werde das nur ein bisschen aufräumen und los geht's. Unsere Funktion ist jetzt über unsere Instanz der Klasse zugänglich , da sie öffentlich ist und wir sie aufrufen können. Und los geht's. Kommt raus 15 weil y und fünf zusammen addiert wurden, weil diese Teams sowieso da sind. Sie wissen jetzt, was ein Freund funktioniert und welche Klassen ein Freund hat und wie man sie benutzt. Also wie immer danke fürs Zuschauen und wir sehen uns im nächsten. 98. Kapitel 15 (Kurse): Namespaces: In diesem Video werden wir über Namensräume sprechen. Wie sich einige von Ihnen vielleicht erinnern, stammt ein Teil unseres Codes aus dem Standard-Namespace, wie C und C out. Und der Grund, warum wir nicht viel damit anfangen mussten , war, dass wir angegeben oder ausdrücklich gesagt haben, dass wir Code aus dem std-Namespace verwenden werden . Wenn das jedoch nicht hier wäre, und ich werde das einfach für eine Minute kommentieren und wir versuchen, etwas zu sagen, das auf C verweist. Es hat keine Ahnung, woher SEO kommt. Und das liegt daran, dass es hier kurz Teil des Standard-Namespaces ist . Wenn wir das nicht explizit oben haben wollten, müssten wir Standarddoppelpunkt, Doppelpunkt gefolgt von C out oder den Code, den wir aus diesem Namespace und Seamless CN hier unten verwenden, sagen Doppelpunkt gefolgt von C out oder den Code, den wir aus diesem Namespace und Seamless CN hier unten verwenden . Und einige der anderen Dinge, die wir in der Vergangenheit benutzt haben . Nummer Ein Namespace ist im Grunde nur ein benanntes Leerzeichen oder ein benannter Teil des Codes, um anzugeben, wovon Sie sprechen. Wenn Sie also zwei Funktionen mit demselben genauen Namen und denselben Parametern hätten, wäre es normalerweise mit demselben genauen Namen und denselben Parametern hätten, schwierig zu unterscheiden , welche Sie verwenden. Wenn jedoch jeder Teil seines eigenen Namespaces war, weiß unser Compiler, über welchen wir sprechen und wo der Code herkommt. Und ein Beispiel, das ich in einem früheren Video verwendet habe, da Sie sich das wie den Nachnamen einer Person vorstellen können. Wenn ich also auf dich zukommen und ein Gespräch beginnen würde und nur sagen würde, John, du weißt vielleicht nicht, von wem ich gesprochen habe. Aber wenn ich sagen würde wie John Silver oder so, dann, weil ich es mit einem Nachnamen in Verbindung gebracht habe, wüsstest du von nun an, von wem ich gesprochen habe. Und das ist ähnlich wie wir sagen, dass wir hier über den Code aus unserem Standard-Namespace in unserem Code sprechen werden über den Code aus . Ordnung, also jedenfalls, wenn das nicht hier war, beachten Sie einfach, dass wir angeben müssen woher dieser Code kommt. Wenn Sie größere Programme selbst erstellen, möchten Sie möglicherweise Ihre eigenen Namespaces erstellen , um zu unterscheiden, woher Ihr Code stammt. Und ich zeige Ihnen jetzt, wie wir das machen können. Also lass mich weitermachen und dieses Zeug einfach hier entfernen. Ich habe hier tatsächlich die Syntax zum Erstellen eines eigenen Namespaces. Sie haben also das Namespace-Schlüsselwort, gefolgt vom Namen Ihres Namensraums. Und dann haben Sie in den geschweiften Klammern den Code, der nicht Teil davon ist, hier oben. Lass uns einfach weitermachen und zwei Funktionen erstellen. Und das wird ein ziemlich einfaches Beispiel sein, aber ich sollte den Punkt vermitteln, wie man einen benannten Raum oder einen Namespace erstellt und verwendet. Also sagen wir „nichtig“. Drucken Sie hallo. Im Code dafür. Ich sage nur Maßstab. Hallo! Nur um diese zu unterscheiden , weil wir eine andere Funktion mit genau demselben Namen, demselben Hello, Namespace erstellen eine andere Funktion mit werden. Eins. Einfach so. Dann erstellen wir einfach eine leere Zeile. Dann lass uns weitermachen und das Ganze kopieren und unten einfügen. Und wir ändern diese, um zu sagen, ich meine, sie ist zwei. Und momentan, wenn wir versuchen würden diese Funktion einfach aufzurufen, indem Hallo senden und unseren Code ausführen. Sie können sehen, dass wir einen Fehler bekommen. Das liegt daran, dass die Funktion, die einen void-Rückgabetyp namens print hello hat und keine Parameter hat, bereits existiert. Wir können also nicht zwei von derselben Sache haben. Und wenn Ihr Code so weit wie möglich erweitert wird, werden Sie auf dasselbe Problem stoßen bei dem Sie möglicherweise mehrere Funktionen haben, die nur aufgrund ihrer Lesbarkeit oder ähnlichem denselben Namen haben. Und dies ist ein gutes Beispiel dafür, wann Sie einen Namespace erstellen möchten. Hier oben sagen wir Namespace. Nennen Sie diesen Namespace nur der Einfachheit halber einen. Dann werden wir unsere geschweiften Klammern öffnen und schließen , so. Dann schneiden wir einfach diese Top-Funktion hier aus und fügen sie einfach so ein. Dann kopieren wir das Ganze und fügen es unten ein. Und wir werden einfach weitermachen und diese zusätzliche Funktion loswerden und n hier. Wir ändern das einfach in Hello Namespace in. Und jetzt, wie Sie sehen, weiß es überhaupt nicht, wovon wir sprechen. Und es heißt, print hello ist völlig undefiniert. Und das liegt daran, dass es genau wie bei unseren CN- oder C-Out-Objekten keine Ahnung gibt , wovon wir sprechen und dies tatsächlich ändern wird, den Namespace auch hier unten. Wir müssen es also wissen lassen, woher diese Print-Hello-Funktion kommt. Und wir könnten dasselbe tun mit unserem Standardnamensraum hier, wo wir ihn gerade vorher platziert haben. Also können wir Namespace sagen, ein Doppelpunkt, Doppelpunkt, so, print hello. Wenn wir dann diese ganze Zeile kopieren und sie unten einfügen, listet Change den Namespace auf und führt einen Code aus. Sie können sehen, dass es einwandfrei funktioniert und genau weiß , welches wir verwenden möchten , weil wir angegeben haben , woher dieser Code kommt. In diesem Beispiel hier haben wir nur eine Basisfunktion verwendet, aber Sie müssen alle Arten von Code in einem Namespace haben. Und denken Sie daran, ein Namespace ermöglicht es uns unseren Code zu trennen und genauer zu bestimmen , woher dieser Code kommt um Konflikte und Benennungen zu vermeiden. Hier haben wir zum Beispiel zwei Funktionen mit demselben Namen, weil sie Teil eines anderen Namespaces sind, wir können angeben, woher das kommt und diese Namen werden überhaupt nicht kollidieren . Jetzt, genau wie zuvor, wo wir gesagt haben, dass wir Namespace std verwenden. Hier oben. Wir können so etwas sagen, wie sie zu benutzen. Namespace, Namespace. Und vergiss nicht das Semikolon am Ende davon. Und wenn ich jetzt wollte, könnte ich einfach den ersten Namespace loswerden und unseren Code hier ausführen. Und das wird gut laufen, weil ich bereits angegeben habe , dass ich Code aus diesem Namespace verwenden werde . Jetzt fragen Sie sich vielleicht, was wäre, wenn wir dasselbe mit dem Namespace tun würden, um unseren Code erneut auszuführen? Nun, wie Sie sehen können, haben wir einen Fehler bekommen und das liegt daran, dass es wieder einmal nicht weiß, wovon wir hier sprechen. Beachten Sie jedoch, dass wir hier unten keinen Fehler erhalten haben. Und das liegt daran, dass wir zwei Namespaces haben , von denen wir gesagt haben, dass wir sie verwenden werden. Und es gibt einen Konflikt bei der Benennung dieser beiden Funktionen, richtig? Weil wir zwei Funktionen mit demselben Namen in zwei verschiedenen Namespaces haben , von denen wir gesagt haben, dass wir sie verwenden. Jetzt. Anderer Code innerhalb dieser Namespaces, es keinen Konflikt im Namen oder Namen gab, war nicht derselbe. Wir würden nicht auf einen Fehler stoßen. Wir könnten beide problemlos separat verwenden . Wenn wir zum Beispiel diese Funktion einfach hier kopieren und darunter einfügen und dasselbe hier oben tun. Wir rufen das einfach bis jetzt an. Und dieser hier unten, drucke Hallo an, nun, ich kann sagen, drucke hallo eins, einfach so. Und es wird wissen, wovon ich spreche weil es jetzt nur eine Funktion mit diesem Namen in einem der Namespaces gibt, von denen wir gesagt haben, dass wir sie in unserem Code im Allgemeinen verwenden. Jetzt wird es gut funktionieren. Kann sie gewichten, um das hier zu ändern. Also mach weiter und mach das. Und wenn ich es erneut ausführe, können Sie sehen, dass es den ersten Namespace ausgibt , weil dieser Code von dort stammt. Wenn Sie also mehrere Namespaces verwenden und das hier oben ausdrücklich gesagt haben . Und Sie haben eine Funktion , die den gleichen Namen wie eine andere Funktion hat, entweder in Ihrem Code oder in einem der Namespaces hier. Sie müssen angeben, woher das kommt, wie wir es hier getan haben. Also drucke hallo to, wir könnten normal benutzen und hallo eins ausdrucken , das wir normal benutzen könnten. Drucken Sie jedoch jetzt Hallo, da wir zwei davon mit demselben Namen haben, es muss nur angegeben werden. Genau wie wir es hier unten gemacht haben, hier oben, der Namespace, eins, Doppelpunkt, Doppelpunkt wie dieser, unseren Code aus. Wie Sie sehen können, funktioniert alles einwandfrei. Also los geht's. So erstellen Sie einen Namespace. Sagen Sie einfach den Namespace gefolgt von einem Namen und dann eine Reihe geschweifter Klammern mit Ihrem Code darin. Wenn Sie dann Code aus diesem Namespace verwenden möchten, können Sie es entweder explizit so tun können Sie es entweder explizit so tun oder Ihren Code oben explizit mitteilen, hey, ich werde Encode aus diesem Namespace verwenden. Und das wird Ihnen nur helfen, Ihren Code so zu sortieren , dass Sie genau wissen, woher er kommt Konflikte in Namen mit Funktionen, Variablen usw. zu verhindern Namen mit Funktionen, Variablen usw. . Wie dem auch sei, danke fürs Zuschauen und wir sehen uns im nächsten. 99. Kapitel 15 (Kurse): Arrays Von Objekten: In diesem Video werden wir darüber sprechen, Arrays von Klassen zu erstellen und einen Blick darauf zu werfen , wie wir auch damit arbeiten können. Also zuerst, hier oben, werden wir weitermachen und eine neue Klasse erstellen. Und sagen wir einfach so etwas wie Unterricht. Artikel. In unserem Code wird hier etwas Ähnliches stehen. Wir sagen String, Name, dann Gold, so. Und lassen Sie uns weitermachen und diese beiden Variablen privat machen . Und denken Sie daran , dass dies standardmäßig gemacht wurde. Aber wir machen einfach weiter und haben es. Sie liegen ausdrücklich daran, dass wir oben bei uns einige öffentliche Methoden entwickeln werden, mit denen wir arbeiten können. Also sagen wir öffentlich, so. Und dann erstellen wir zwei Funktionen, erstellen eine namens item. Und das würde keine Parameter benötigen und es wird auch keinen Rückgabetyp haben. Also sagen wir einfach „Artikel ungültig“. Dann sagen wir dafür nichtig. Und dafür werden wir auch keine Perimeter haben. Also sieht unsere Klasse jetzt genauso aus. Und dann erstellen wir die Definitionen für diese beiden Funktionen in der unteren Klasse. Also kopiere ich das hier, füge es ein und kopiere es und füge es auch ein. Dann müssen wir ausdrücklich sagen , woher sie kommen. Also Replikname, wir sagen Item Doppelpunkt, Doppelpunkt, einfach so. Und wir machen das Gleiche hier unten. Dann brauchen wir die geschweiften Klammern für die Definition jeder Methode. Dann werden wir innerhalb des Set-Artikels so vorgehen. Wir sagen CL, Artikelname, Doppelpunkt, genau so auf dem dort. Und dann darunter, was sie sehen. Und danach erstellen wir eine leere Zeile, so. Und dann drucken wir den Artikelkostenraum aus. Und am Ende setzen wir auch ein Semikolon. Und dann sagen wir C und gehen so weiter. Und dann unten werden wir diese beiden Variablen ausdrucken. Also sagen wir CL-Name, gefolgt von einem Leerzeichen. Weltall. Wir verfolgen das mit den Kosten für Cola. Dann sagen wir wieder in Anführungszeichen Leerzeichen und setzen am Ende ein Semikolon. Und tatsächlich wird es weitergehen und am Ende auch eine neue Linie schaffen . Mach dich selbst, in Ordnung, also stell sicher, dass deine gesamte Klasse zu meiner passt. Und weiter unten bei unserer Hauptfunktion werden wir sagen, dass const int size gleich drei ist. Dann unten wird eine For-Schleife erstellt. Also sagen wir für int ist ich gleich 0, ich bin kleiner als Größe I plus, plus. Dann lass uns weitermachen und das tatsächlich kopieren und unten einfügen. Jetzt haben wir allerdings 24 Loops. Wir gehen hier dreimal durch. Und dann unten unter einer Konstante erstellen wir ein Array von Typ-Elementen. Item, ich nenne das Items. Dann in eckigen Klammern. Wir sagen Größe. Was bedeutet ein Semikolon so am Ende? Dann werden wir in unserer ersten for-Schleife item at index i. Da dies von 0 auf zwei gehen wird, was derzeit der gleiche Index unseres Items-Arrays ist, da dies eine Größe von drei ist. Und nachdem es die eckige Klammer geschlossen sagen wir hier einfach Punkt, Element setzen, Klammern öffnen und schließen und am Ende ein Semikolon. Jedes Mal, wenn es hier durch unsere for-Schleife läuft, wird es durch die verschiedenen Elemente in unserem Array Typ item laufen und diesen Code hier von unserer Set-Item-Funktion aus ausführen. Wir fragen nur nach einem Artikelnamen und dann fügen wir einen Namen ein, und dann frage ich nach einem Artikel, Goldkosten, und wir fügen ihn auch ein. Dann sagen wir in unserer zweiten für-Schleife Artikel bei Index I, Druckartikel. Dann fügen wir einfach ein bisschen Kontexttext in jedes dieser Loops ein, oder? Also sagen wir Item Space und wir drucken I plus eins aus. Und ich werde es mit Space verfolgen. Schritte. Sagt Doppelpunkt und erstellt danach eine neue Zeile. Also sagen wir einfach Backslash n. Ok, jetzt wird es gut funktionieren. Kopiere das und füge es auch in unsere andere For-Loop ein. Wenn wir dann hier zu unserem Set-Artikel zurückkehren, wir einfach weitermachen und dieses Extra entfernen und meins geschickt. Es wird schon eine Reihe weiter gehen nachdem wir den Namen hier eingegeben haben. Ordnung, und dann lass uns weitermachen und unseren Code ausführen. Und wie Sie sehen können, und das gilt für Artikel in Statistiken. Und ich nenne das einfach Apfel. Geben Sie ihm einen Goldgegenstand, um ihn Orange zu nennen. Kosten von drei. Und zum Schluss sage ich etwas wie Kokosnuss und gebe es fünf. Und danach können Sie sehen, dass wir die einzelnen Artikelstatistiken ausgedruckt haben. Also wollte ich keine Statistiken. Apple kostet Goldstücke, Gegenstand zu Statistiken, orangefarbene Säulen, drei, Gegenstand durch Statistiken, Kokosnuss verursacht fünf und sie gehen. So können Sie mit einer Reihe von Objekten arbeiten. Sie werden ein normales Array erstellen, wobei der Typ der Klassenname ist, als der Typ, mit dem wir arbeiten möchten , der Name des Arrays, genau wie üblich und Ihre Größe wie gewohnt. Und dann müssen Sie nur noch Ihren Mitgliedszugriffsoperator verwenden , um mit den verfügbaren Mitgliedern jeder Klasse zu arbeiten . Übrigens, wenn Sie mit einer Sammlung des Basisklassentyps arbeiten und dann Elemente eines Unterklassentyps einfügen. Wenn wir zum Beispiel zuvor einen Vektor von Tieren gehabt hätten und dann Katzen- und Hundeobjekte eingefügt hätten. Sie sollten mit einem tatsächlichen Array von Zeigern auf diese Objekte arbeiten und nicht mit den Objekten und Zellen. Und das liegt daran, dass jede Unterklasse unterschiedliche Größe und Speicher hat. Wenn Sie jedoch nur einen Zeiger auf jedes dieser Unterklassenobjekte in Ihrem Container hätten , belegen alle Zeiger die gleiche Menge an Speicher und Sie werden keine Probleme haben. Also wie gesagt, wenn Sie mit dem Container eines Basisklassentyps arbeiten und wir Elemente Ihrer Unterklassenarten haben. Da das funktioniert, stellen Sie sicher, dass Sie mit einem Array von Zeigern auf diese Objekte arbeiten Zeigern auf diese Objekte und nicht nur mit diesen Objekten selbst. Auf diese Weise belegen sie alle die gleiche Menge an Speicher und Sie haben keine Probleme. Jedenfalls. Das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 100. Kapitel 15 (Kurse): Separating: In diesem Video zeige ich Ihnen , wie Sie Ihre Klassen in separate Dateien aufteilen können . Eine davon ist eine Header-Datei und die andere ist eine CPP-Datei, der wir die ganze Zeit gearbeitet haben, wenn Sie sich hier oben ansehen mit der wir die ganze Zeit gearbeitet haben, wenn Sie sich hier oben ansehen. Dazu gehören Aussagen , mit denen wir gearbeitet haben und , mit denen wir gearbeitet die uns den Zugriff auf Header-Dateien anderer Klassen ermöglicht haben. Und ich zeige Ihnen, wie wir auf unsere eigenen Klassendateien zugreifen oder diese einbeziehen können. Und das wird es Ihnen wirklich ermöglichen, Ihren Code zu organisieren und in mehreren Programmen zu verwenden , da Sie einfach auf die Datei zugreifen können , die er nicht ist. Also lasst uns anfangen. Zunächst einmal, hier oben, sagen wir Klasse. Und nennen wir das einfach meine Klasse. Und dann werden wir hier drinnen einfach eine grundlegende Funktion erstellen. Also sagen wir void, print, arbeiten Klammern öffnen und schließen und am Ende ein Semikolon. Und dann definieren wir diese Funktion außerhalb unserer Klasse. Denn wenn Sie sich erinnern, ist dies der richtige Weg, um Funktionen für Ihre Klassen zu definieren. Also sagen wir Junge in meiner Klasse, Doppelpunkt, Doppelpunkt oder der Bereichsauflösungsoperator, gefolgt von offenen und schließenden Klammern. Und dann werden wir unseren Code unten blockieren lassen. Und hier drinnen werden wir sagen, dass CL einfach so arbeitet. Und los geht's. Mal sehen, wie wir das jetzt richtig in mehrere Dateien aufteilen können . Nun, nur um hier ein paar Kommentare hinzuzufügen. Ihre Klassendeklaration wird also in eine sogenannte Header-Datei aufgenommen. Ordnung, das hier wird also in eine Header-Datei aufgenommen. Und dann werden Ihre Definitionen für alles, was Sie deklariert haben , in die cpp-Datei aufgenommen. Stimmt's? Also lasst uns weitermachen und das tun. Dann hier unten in unserer Hauptfunktion, lass uns weitermachen und auch ausdrucken. Bevor wir das ausdrucken, erstellen wir eine neue Zeile. Also sag M9, Ende der Hauptleitung, so. Jetzt werde ich euch nur zeigen, wie das in Visual Studio geht . Abgesehen davon empfehle ich, weiterzumachen, unabhängig davon wie Sie auf dem Weg etwas lernen und je nachdem, welches Programm Sie verwenden, um Ihren Code in C plus plus zu schreiben, du solltest dort auch in der Lage sein, etwas Ähnliches zu machen. Und Sie müssen nur die wenigen Unterschiede nachschlagen und herausfinden, wie Sie die Dateien selbst erstellen. Was wir jetzt tun werden, ist hier rüber zu unserem Solution Explorer auf der rechten Seite zu gehen . Und wenn Sie dies nicht sehen, können Sie hier nach oben gehen und auf Ansicht und dann auf Projektmappen-Explorer klicken. Alles, was wir tun werden, ist mit der rechten Maustaste hier drüben zu klicken und der Solution Explorer geht nach unten zu der Solution Explorer geht nach unten zu Hinzufügen und dann auf Neues Element und dann auf die Stelle , an der Punkt CPP steht. Und hier unten geben wir anstelle von source den Namen der Klasse ein, die wir erstellen möchten. In diesem Fall sagen wir meine Klasse und stellen sicher, dass sie dort genauso geschrieben ist. Fahren Sie dann fort und klicken Sie auf Hinzufügen. Und jetzt können Sie sehen, dass unsere neue Datei ganz oben ist. Dann klicken wir erneut mit der rechten Maustaste in unserem Lösungs-Explorer, gehen nach unten zu Hinzufügen, klicken auf Neues Element und gehen zu der Stelle, an der Header-Datei steht. Und dann ändere den Namen hier in meinen Klassenpunkt h. Und stelle noch einmal sicher, dass er richtig geschrieben ist und die richtige Großschreibung hat. Nun, ich füge noch einmal hinzu. Und los geht's. Wenn wir dann hier zu unserer Hauptdatei zurückkehren und hier alles ausschneiden, was in unserer Header-Datei stehen würde. Dann gehen wir zurück zu unserer Header-Datei, die durch meinen Klassenpunkt h gekennzeichnet ist, und fügen sie dort ein. Dann kehren wir wieder zu unserer Hauptdatei und schneiden unsere Klassendefinitionen aus. Gehen Sie zu unserer CPP-Datei und fügen Sie sie dort ebenfalls ein. Und Sie werden sofort feststellen, dass unsere CPP-Datei hier keine Ahnung hat, was meine Klasse ist. Und das liegt daran, dass wir genau wie in unserer Hauptdatei, in der wir diese Header-Dateien hier eingefügt haben, dasselbe tun müssen und unsere CPP-Datei. Also, was wir tun werden, sage ich Hashtag. Hoffentlich. Dann immer dann, wenn Sie mit einer vom Benutzer erstellten Header-Datei arbeiten oder diese hinzufügen einer vom Benutzer erstellten Header-Datei und keine, die in C plus integriert ist. Anstelle des Symbols „ Kleiner als“ und „Größer “ verwenden Sie solche doppelten Anführungszeichen. Dann sagen wir meinen Klassenpunkt h. Jetzt werden Sie feststellen, dass es nicht versteht , was C out bedeutet. Und das liegt daran, dass es Teil einer anderen Header-Datei ist. Und wenn wir nur mit der Maus darüber fahren, können Sie sehen, dass Sie Alt Enter drücken können , um mögliche Korrekturen anzuzeigen. Und alles was ich tun möchte, ist die iostream-Datei einzubinden. Also bitte klicken Sie darauf, wird gleich oben hinzugefügt. Und wir müssen immer noch angeben , woher das kommt. Wir können also noch einmal Alt, Enter in Visual Studio drücken und entweder std hinzufügen, gefolgt vom Bereichsauflösungsoperator und C out. Oder wir können tun, was wir vorher gemacht haben, und dies mit dem Namespace Std hinzufügen . Wir hätten das alles einfach manuell eingeben können, aber ich wollte nur denen von Ihnen zeigen , die Visual Studio verwenden. Eine andere Möglichkeit, unseren Code schnell zu korrigieren. Wenn wir dann zu unserer Hauptdatei zurückkehren, können wir weitermachen und unsere Header-Datei aus meiner Klasse einbeziehen . Wir sagen also, dass Hashtag enthalten ist. Denken Sie daran, wir setzen es in Anführungszeichen. Und wie Sie in Visual Studio sehen können tauchen hier bereits unsere Optionen auf. Also können wir einfach darauf doppelklicken , wo mein Klassenpunkt h steht, und ich drucke das für uns aus. Dann können wir hier unten weitermachen und ein Objekt oder eine Instanz unserer Klasse erstellen . Also sag meine Klasse. Diese Klasse. Und um dann von meiner Klasse aus auf unsere Funktion zugreifen zu können, müssen wir zu unserer Header-Datei zurückkehren und diese Funktion erstellen. Denken Sie daran, dass wir einfach public gefolgt von einem Doppelpunkt sagen und dann unsere Funktionsdeklaration darunter setzen. Wenn wir dann jetzt zu unserer Hauptdatei zurückkehren, können wir diesen Klassenpunktdruck in engen Klammern und einem Semikolon am Ende speichern in engen Klammern . Und wenn wir jetzt einen Code ausführen, wird alles gut funktionieren. Wie Sie sehen können, habe ich es als Arbeit und Ende der Hauptausgabe ausgedruckt. Eine weitere Sache, die ich erwähnen wollte, ist, dass Sie versehentlich eine dieser Akten schließen . Sagen wir einfach, ich schließe die Header-Datei in Ihrem Solution Explorer. Unter Header-Dateien sehen Sie das gleich hier. Doppelklicken Sie einfach darauf und es öffnet sich sofort. Und dann ist Ihre CPP-Datei hier unten unter Quelldateien und unserer Haupt-CPP-Datei, und es gibt auch unter Quelldateien. Eine letzte Sache, die ich Ihnen zeigen möchte, ist die folgende. Wenn wir hier zu unserer Header-Datei für meine Klasse zurückkehren, können Sie sehen, dass wir diese Hashtag-Pragma einmal haben. Dadurch wird sichergestellt, dass unsere Header-Datei nur einmal enthalten ist. Und um Ihnen zu zeigen, was das genau macht, wenn wir hier zu unserer Hauptdatei zurückkehren und unsere Include-Header-Datei kopieren und erneut einfügen und unseren Code ausführen. Wie Sie sehen können, funktioniert es einwandfrei. Und das liegt daran, dass dieses Hashtag-Pragma einmal im Grunde besagt , dass jedes Mal, wenn wir unsere Header-Datei hier einfügen oder angeben, dass wir sie einbeziehen möchten, überprüft wird, ob sie bereits vorhanden Die Deklaration für meine Klasse, die, wenn Sie sich erinnern , alles ist, was in Ihrer Header-Datei ist, ist im Grunde die Deklaration für eine Klasse. Und wenn ja, wird diese Include-Anweisung ignoriert. Und wenn nicht, wird die Deklaration hinzugefügt. Also das erste Mal durch und hinzugefügt meine Klassendeklaration und beim zweiten Mal wurde sie ignoriert. Allerdings unterstützen nicht alle Compiler diese Pragma-Einmal-Direktive hier oben. Und ich werde nicht darauf eingehen was Regisseure sind, wenn Sie dieses Pfund - oder Hashtag-Symbol hier sehen oder mit diesem Hashtag oder Pfund enthalten, es ist eine Art Direktive. Und wie gesagt, ich werde nicht darauf eingehen, aber im Grunde unterstützen nicht alle Compiler diese. Also zeige ich Ihnen eine Alternative und ich werde Ihnen auch zeigen, was passieren würde , wenn wir das nicht hätten. Wenn wir jetzt versuchen, unser Programm erneut auszuführen, können Sie sehen, dass wir einen Fehler bekommen. liegt daran, dass wir versucht haben, diese Klasse neu zu definieren. Eine andere Möglichkeit, dies zu beheben ist ein sogenanntes Guard-Idiom. Und alles, was wir tun müssen, ist in unserer Header-Datei, wir werden Hashtag sagen, wenn N def, und darunter wird Hashtag define sagen. Und dann unten am Ende unserer Header-Datei sagen wir Hashtag. Und am Ende unseres f und f und define hier fügen wir unseren Header-Dateinamen als meine Klasse in Großbuchstaben hinzu. Also sage ich meinen Klassenunterstrich und dann H. Und das ist eine übliche Namenskonvention wenn ich mit einem Header-Guard und/oder einer Guard-Idiom-Sache arbeite . Was wir hier haben oder das Pragma, das Sie einmal gesehen haben. Alles was Sie tun werden, ist Ihren Header-Dateinamen in Großbuchstaben zu haben . Und dann wirst du statt einer Diät einen Unterstrich haben. Hier oben steht also mein Klassenpunkt h hier drin haben wir mein Klassenunterstrichalter und alle Großbuchstaben. Wie gesagt, das ist nur eine sehr verbreitete Namenskonvention. Dann machen wir dasselbe danach, um es zu finden. Lassen Sie uns also durchgehen , was das bedeutet. Nun, wenn Ihre Compiler das Hashtag-Pragma einmal unterstützen , das wir zuvor hatten, richtig? Du kannst das einfach oben lassen. Wenn dies nicht der Fall ist, ist dies ein weiterer Header-Guard, das Format, das Sie verwenden können und das unterstützt werden sollte. Lassen Sie uns also durchgehen , was das alles bedeutet. Also zuerst haben wir diesen Hashtag F und F. Das heißt, wenn er nicht definiert ist, und was überprüfen wir? Wenn es nicht definiert ist, ist diese Header-Datei genau hier, und das ist der Name, den wir unserer Header-Datei hier geben. Im Wesentlichen können Sie alles, was diese Richtlinie verabschiedet hat, hier als Hauptteil unserer if-Anweisung betrachten . Wenn also meine Klassen-Header-Datei nicht definiert ist, dann wollen wir sie definieren. Und hier unten müssen wir unsere if-Aussage beenden. Aber anstatt es mit einer geschlossenen geschweiften Klammer zu beenden, sagen wir Hashtag und richtig? Und denken Sie daran, dass dies als Header-Guard bezeichnet wird , wenn Sie mehr darüber nachdenken möchten. Und wie ich bereits sagte, werden diese einmal genau dasselbe tun wie das Pragma. Also, wenn Ihr Compiler die Website unterstützt, Großartig. Fügen Sie nicht einfach Folgendes zu Ihrer Header-Datei hinzu. Pound wenn N def gefolgt von deinem Header-Namen, dann sagst du Hashtag define mit demselben Namen direkt darunter. Und dann sagst du ganz am Ende Hashtag. Und dann denken Sie daran, Ihre Header-Datei enthält alle Ihre Klassendeklarationen, weshalb ich in der Vergangenheit gesagt habe, dass wir unsere Deklarationen von unseren Definitionen trennen wollen . Und dann haben wir in unserer CPP-Datei alle unsere Include-Richtlinien. Und ich weiß, dass ich diese Aussagen während des gesamten Kurses aufgerufen habe , aber sie werden technisch als Direktiven bezeichnet. Sie werden also alle Ihre Include-Direktiven haben, alle verwendenden Namespaces, die Sie möglicherweise verwenden möchten, und dann Ihre Klassendefinitionen. Dann müssen Sie in Ihre Hauptdatei Ihre Klassen-Header-Datei aufnehmen , wenn Sie diese Klasse verwenden möchten. Und wir können so viele Header-Dateien und CPP-Dateien hinzufügen , wie wir brauchen, um unseren Code hier aufzuteilen. Und denken Sie daran, alles, was wir tun mussten, war, hier auf unseren Programmnamen direkt unter der Lösung zu klicken, mit der rechten Maustaste zu klicken, nach unten zu Hinzufügen und dann zu Neues Element zu gehen. Und dann haben wir jede Datei einzeln hinzugefügt. Und jetzt, obwohl wir zwei Deklarationen unserer Header-Datei haben , genau wie damals, als wir unsere pragma once Direktive hatten, wird unser neuer Header-Guard, den wir gerade erstellt haben, funktionieren. Wenn wir es also ausführen, können Sie sehen , dass es einwandfrei funktioniert. In einem kleinen Programm werden Sie wahrscheinlich nicht versehentlich Ihre Header-Datei zweimal hinzufügen oder versuchen, die Klasse zweimal so neu zu definieren. Aber wenn Sie anfangen, mit viel größeren Programmen zu arbeiten, können diese definitiv zu einem Problem werden. Sie möchten also sicherstellen, dass Sie dies vermeiden können , indem Sie Header-Guards verwenden, entweder das Hashtag-Pragma einmal verwenden, wenn Ihre Compilerunterstützung festgelegt ist, oder Sie können einfach den Hashtag if und death verwenden hashtag define und hashtag und F, wie wir es hier gemacht haben. Also los geht's. So können Sie Ihre Klassen in einzelne Dateien aufteilen. Und dann können Sie Ihre Klassen auch in anderen Programmen verwenden . Und hoffentlich zeigt das irgendwie , warum wir unsere Klassendeklarationen von unseren Klassendefinitionen getrennt haben Klassendeklarationen von unseren Klassendefinitionen getrennt , da es wirklich einfach ist, sie einfach auszuschneiden und bei Bedarf in die separaten Dateien einzufügen. Und denken Sie daran, dass unser Header Guard uns nur erlaubt hat , unsere Klasse versehentlich ohne Probleme neu zu deklarieren. Also werde ich weitermachen und das entfernen. Nun, es gibt einige spezielle Fälle in denen Sie ihre Wache nicht wirklich wollen, aber meistens werden Sie es tun. Und wenn Sie herausfinden möchten, wann Sie das nicht möchten , können Sie dies gerne tun. Aber darauf werde ich in diesem Kurs sowieso nicht eingehen, das war's für dieses Video. Danke fürs Zuschauen und wir sehen uns im nächsten. 101. Wir gratulieren!: Herzlichen Glückwunsch zum Abschluss dieses Kurses. Sie haben auf Ihrer Programmierreise einen großen Schritt nach vorne gemacht , und Sie sollten sehr stolz auf alles sein , was Sie hier erreicht haben. Wenn Ihnen der Kurs gefallen hat oder Sie ihn in irgendeiner Weise hilfreich fanden, würden wir uns sehr darüber freuen. Wenn Sie uns eine positive Bewertung hinterlassen könnten. Ihr Feedback hilft uns nicht nur, uns zu verbessern, sondern ermutigt auch andere ihre Reise hier zu beginnen. Versuchen Sie jetzt, an die Zeit zurückzudenken , als Sie angefangen haben. Die Idee des Programmierens war wahrscheinlich überwältigend. Jetzt sieh dir an, wie weit du gekommen bist. Sie beherrschen die Grundlagen, haben fortgeschrittenen Themen befasst und die Fähigkeiten erworben, um mit der Erstellung eigener Projekte zu beginnen Nachdem Sie diesen Kurs abgeschlossen haben, Ihr nächster Schritt darin, diese Fähigkeiten in die Praxis umzusetzen Eine gute Möglichkeit, das Gelernte zu festigen , besteht darin, ein kleines, überschaubares Projekt in Angriff zu nehmen , das Sie in etwa zwei bis vier Wochen abschließen können Und ich würde natürlich dringend empfehlen, zunächst eine bestehende einfache Anwendung für nichtkommerzielle Zwecke zu klonen eine bestehende einfache Anwendung für nichtkommerzielle Zwecke zu Und indem Sie etwas erstellen, das bereits existiert, können Sie sich darauf konzentrieren, zu lernen, wie die einzelnen Funktionen funktionieren und wie Sie sie selbst implementieren können, anstatt sie von Grund auf neu zu entwerfen Und wenn das erledigt ist, versuchen Sie, Ihre eigene einzigartige Variante hinzuzufügen oder das Konzept als zweites Projekt zu erweitern. Ist eine fantastische Möglichkeit , Ihre Kreativität zu üben und zu entfalten und gleichzeitig Vertrauen in Ihre Fähigkeiten aufzubauen. Und von dort aus können Sie beginnen, sich Ihren eigenen größeren, besseren und einzigartigeren Projekten zuzuwenden Und denken Sie daran, dass es völlig in Ordnung ist, zurückzukommen und das Kursmaterial erneut während Sie an Ihren eigenen Projekten arbeiten Beim Programmieren geht es darum, nebenbei zu lernen. Selbst Staffelentwickler suchen ständig nach Dingen, egal ob es darum geht, ihren Speicher aufzufrischen egal ob es darum geht, ihren Speicher aufzufrischen oder ein neues Problem zu lösen. Nutzung von Ressourcen wie diesem Kurs oder dem Internet ist keine Schwäche. Das gehört dazu, ein guter Programmierer zu sein. Nun, das ist erst der Anfang. ob Sie an Ihrem ersten Projekt gearbeitet haben, zurückgekehrt sind, um Ihr Wissen aufzufrischen, oder in einen anderen unserer Kurse eingetaucht sind, das Wissen, das Sie hier erworben haben, wird Ihr Sprungbrett für noch größere Erfolge sein Ihr Sprungbrett für noch größere Erfolge Apropos, schauen Sie sich unbedingt unsere anderen Inhalte an, um weitere Lernmöglichkeiten Und falls Sie es noch nicht getan haben, ziehen Sie bitte in Betracht, unsere Ansicht zu verlassen , um Ihre Erfahrungen zu teilen. Es macht wirklich einen Unterschied und wir würden uns freuen, von Ihnen zu hören. Von uns allen hier bei Primoris Arts noch einmal herzlichen Glückwunsch zu diesem großartigen Meilenstein Wir können es kaum erwarten zu sehen, was Sie als Nächstes kreieren. Lernen Sie weiter, bleiben Sie neugierig und denken Sie daran, dass der Himmel die Grenze ist Gut gemacht und viel Glück bei deinem nächsten Abenteuer.