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.