Zuhause Persönliche Finanzen 8 C ++ Not-So-Beginner-Funktionen - Dummies

8 C ++ Not-So-Beginner-Funktionen - Dummies

Inhaltsverzeichnis:

Video: Boolean function example (C++ programming tutorial) 2024

Video: Boolean function example (C++ programming tutorial) 2024
Anonim

Die Sprache C ++ enthält so viele Funktionen, dass Anfänger nicht jeden einzelnen verstehen können. Glücklicherweise müssen Sie nicht alle Funktionen der Sprache beherrschen, um große, reale Programme zu schreiben. Im Folgenden sind zehn Features aufgeführt, die Sie sich vielleicht ansehen sollten, nur für den Fall, dass Sie sie in anderen Programmen sehen.

Der C ++ - Befehl goto

Dieser Befehl geht zurück zu C, dem Vorläufer von C ++. Im Prinzip ist die Verwendung dieses Befehls einfach. Sie können Goto-Label platzieren. wo auch immer du willst. Wenn C ++ diesen Befehl erreicht, wird die Steuerung sofort an das Label übergeben, wie in diesem Code-Schnipsel gezeigt:

for (;;) {if (bedingter Ausdruck) {goto outahere;} // … was immer Sie wollen …} outahere: // … Programm geht hier weiter …

In der Praxis jedoch Goto führt viele Wege ein, um es zu vermasseln. Auf jeden Fall dauerte es nicht lange, bis Programmierer bemerkten, dass die beiden häufigsten Verwendungen des goto darin bestanden, Schleifen zu verlassen und innerhalb einer Schleife zum nächsten Fall zu gehen. Das C-Normen-Komitee führte break and continue ein und beseitigte fast vollständig die Notwendigkeit des goto-Befehls.

Der ternäre C ++ Operator

Der ternäre Operator ist ein für C und C ++ eindeutiger Operator. Es funktioniert wie folgt:

int n = (bedingt)? Ausdruck1: Ausdruck2;

Das? Der Operator wertet zuerst die Bedingung aus. Wenn die Bedingung wahr ist, ist der Wert des Ausdrucks gleich dem Wert von Ausdruck1; Ansonsten ist es gleich dem Wert von Ausdruck2.

Beispielsweise könnten Sie eine Funktion maximum () wie folgt implementieren:

int max (int n1, int n2) {return (n1> n2)? n1: n2;}

Der ternäre Operator kann auf jeden numerischen Typ angewendet werden, kann aber nicht überladen werden. Der ternäre Operator ist wirklich ein Ausdruck - keine Steueranweisung wie ein if.

Aufzählungstypen in C ++

Die einfache Idee ist, dass Sie Konstanten definieren und C ++ ihnen Werte zuweisen können, wie hier gezeigt:

enum Colors {SCHWARZ, BLAU, GRÜN, GELB, ROT}; Farben myColor = SCHWARZ;

Das Problem mit Aufzählungstypen liegt in der Implementierung: Anstatt einen echten Typ zu erstellen, verwendet C ++ ganze Zahlen. In diesem Fall wird BLACK der Wert 0 zugewiesen, BLUE wird 1 zugewiesen, GREEN2 und so weiter.

Die Standardbibliothek 2011 für C ++ hat dieses Problem "behoben", indem sie einen aufgezählten Klassentyp erstellt hat, wie im folgenden Ausschnitt gezeigt:

enum class Farben {SCHWARZ, BLAU, GRÜN, GELB, ROT}; Farben myColor = Farben:: SCHWARZ;

In dieser Version ist Colors ein neuer Typ.Jede der Konstanten, BLACK, BLUE usw., ist ein Member des Typs Colors. Sie können ein Objekt der Klasse Colors immer noch in ein Int umwandeln. Eine implizite Umwandlung ist jedoch nicht zulässig.

C ++ Namespaces

Es ist möglich, verschiedenen Entitäten in zwei verschiedenen Bibliotheken den gleichen Namen zu geben. Beispielsweise ordnet die Funktion grade () in der Student-Bibliothek wahrscheinlich eine Note zu, wohingegen die Funktion grade () in der CivilEngineering-Bibliothek die Neigung an der Seite eines Hügels festlegen kann. Um dieses Problem zu vermeiden, erlaubt C ++ dem Programmierer, ihren Code in einem separaten Namespace zu platzieren. Daher unterscheidet sich die Note innerhalb des Student-Namensraums von der Note in CivilEngineering.

Der Namespace ist über den Klassennamen hinaus. Die grade () - Memberfunktion der Klasse BullDozer im Namespace CivilEngineering hat den erweiterten Namen CivilEngineering:: BullDozer:: grade ().

Alle Bibliotheksobjekte und Funktionen befinden sich im Namensraum std. Die Anweisung am Anfang der Programmvorlage mit Namespace std; sagt, wenn Sie das angegebene Objekt nicht im Standard-Namespace sehen, dann suchen Sie in std.

reine virtuelle Funktionen in C ++

Sie müssen keine virtuell deklarierte Funktion definieren. Eine solche undefinierte Funktion ist als reine virtuelle Mitgliedsfunktion bekannt. Zu diesem Zeitpunkt werden die Dinge jedoch kompliziert. Beispielsweise wird eine Klasse mit einer oder mehreren reinen virtuellen Funktionen als abstrakt bezeichnet und kann nicht zum Erstellen eines Objekts verwendet werden. Nehmen Sie dieses Thema auf, nachdem Sie sich mit virtuellen Funktionen und späterem Binden wohl gefühlt haben.

Die C ++ String-Klasse

Die meisten Sprachen enthalten eine String-Klasse als einen intrinsischen Typ für die einfache Handhabung von Zeichenfolgen. Theoretisch sollte die String-Klasse dasselbe für C ++ tun. In der Praxis ist das jedoch nicht so einfach. Da string kein intrinsischer Typ ist, ähneln die Fehlermeldungen, die der Compiler beim Auftreten von Fehlern ausgibt, eher denen, die benutzerdefinierten Klassen zugeordnet sind. Für einen Anfänger können diese Nachrichten sehr schwer zu interpretieren sein.

string ist nicht einmal eine Klasse. Es ist eine Instanz einer Vorlagenklasse. Die Fehlermeldungen können atemberaubend sein.

Mehrfachvererbung in C ++

Eine Klasse kann tatsächlich mehr als eine Basisklasse erweitern. Das klingt einfach, kann aber sehr kompliziert werden, wenn die beiden Basisklassen Memberfunktionen mit demselben Namen enthalten. Noch schlimmer ist es, wenn beide Basisklassen selbst Unterklassen einer bestimmten Klasse sind.

In der Tat treten so viele Probleme auf, dass C ++ die einzige C-ähnliche Sprache ist, die Mehrfachvererbung unterstützt. Java und C #, beides Sprachen, die von C ++ abgeleitet sind, haben entschieden, die Unterstützung für die Mehrfachvererbung aufzugeben.

C ++ - Vorlagen und die Standardvorlagenbibliothek

Die Macher von C ++ haben bemerkt, dass ähnliche Funktionen wie die folgenden sind:

int max (int n1, int n2) {if (n1> n2) {return n1;} return n2;} double max (double n1, double n2) {if (n1> n2) {return n1;} return n2;} char max (char n1, char n2) {if (n1> n2) {return n1;} return n2;}

"Wäre es nicht cool", sagt man zu einem anderen, "wenn Sie den Typ durch einen Pseudo-Typ T ersetzen könnten, den Sie zur Kompilierzeit definieren könnten?"Bevor Sie es wissen, werden presto - Vorlagen Teil von C ++:

Vorlage T max (T t1, T t2) {if (t1> t2) {return t1;} return t2;}

Jetzt kann der Programmierer Erstellen Sie ein max (int, int), indem Sie T durch int ersetzen und das Ergebnis kompilieren. Erstellen Sie ein max (double, double), indem Sie T durch double ersetzen und so weiter. Das Standardisierungskomitee hat sogar eine ganze Klassenbibliothek herausgegeben, die als Standard Template Library (kurz: STL) bekannt ist und auf Vorlagenklassen basiert.

Für einen Anfänger beginnt das Thema der Template-Klassen jedoch syntaktisch sehr kompliziert zu werden. Darüber hinaus sind die Fehler, die der Compiler erzeugt, wenn Sie eine Template-Instanziierung falsch erhalten, für einen Experten verwirrend, ganz zu schweigen von einem Anfänger. Dies ist definitiv ein Thema, das warten muss, bis Sie sich mit der Grundsprache wohl fühlen.

8 C ++ Not-So-Beginner-Funktionen - Dummies

Die Wahl des Herausgebers

Zum Hinzufügen von Arbeitsblättern zu Ihrer Excel 2013-Arbeitsmappe - dummies

Zum Hinzufügen von Arbeitsblättern zu Ihrer Excel 2013-Arbeitsmappe - dummies

Jede leere Arbeitsmappe, die Sie öffnen, enthält ein Einzelblatt mit dem prosaischen Namen Sheet1. Um weitere Blätter zu Ihrer Arbeitsmappe in Excel 2013 hinzuzufügen, klicken Sie einfach auf die Schaltfläche Neues Blatt in der Statusleiste (die mit Pluszeichen in einem Kreis). Jedes Arbeitsblatt, das Sie mit der Befehlsschaltfläche Neues Blatt hinzufügen, ist ...

Wie man bedingte Formatierung in Excel 2010 anwendet - dummies

Wie man bedingte Formatierung in Excel 2010 anwendet - dummies

Mit der bedingten Formatierung von excel 2010 können Sie das Aussehen von eine Zelle basierend auf ihrem Wert oder dem Wert einer anderen Zelle. Sie geben bestimmte Bedingungen an, und wenn diese Bedingungen erfüllt sind, wendet Excel die Formatierung an, die Sie auswählen. Sie können die bedingte Formatierung verwenden, um Datumsangaben zu suchen, die bestimmte Kriterien erfüllen (z. B. fallen auf ...

Die Wahl des Herausgebers

ASVAB Vorbereitung: Wie man Brüche multipliziert und dividiert - Dummies

ASVAB Vorbereitung: Wie man Brüche multipliziert und dividiert - Dummies

Es wird erwartet, dass festes Verständnis des mathematischen Grundwissens, wenn Sie das ASVAB nehmen. Multiplizieren und Dividieren von Brüchen sind zwei der Dinge, die Sie wissen müssen. Fraktionen multiplizieren Fraktionen multiplizieren ist sehr einfach. Alles, was Sie tun müssen, ist, die Zähler untereinander zu multiplizieren und die Nenner mit ... zu multiplizieren.

ASVAB-Praxis: Beispiel-Fragen zu Word-Kenntnissen - Dummies

ASVAB-Praxis: Beispiel-Fragen zu Word-Kenntnissen - Dummies

Sie müssen für die Word-Wissensprobleme bereit sein auf dem ASVAB. Das Format, das Sie unten sehen, ist ein gutes Beispiel dafür, was Sie finden werden, wenn Sie das ASVAB benutzen. Beispielfragen Wortwissenszeit: 11 Minuten für 35 Fragen Anleitung: Der Wortwissensubtest ist der dritte Untertest ...

ASVAB: Paragraph Comprehension Subtest Beispiel Testfragen - Dummies

ASVAB: Paragraph Comprehension Subtest Beispiel Testfragen - Dummies

Zeit für Sie, all Ihre ASVAB Vorbereitung zur guten Verwendung. Fragen Sie sich anhand der folgenden Beispieltestfragen, ob Ihr Leseverständnis auf dem neuesten Stand ist. Lesen Sie jeden kurzen Absatz, dem eine oder mehrere Fragen zu den in dieser Passage enthaltenen Informationen folgen. Achten Sie darauf, den Absatz sorgfältig zu lesen ...

Die Wahl des Herausgebers

Zoomen und Schwenken in AutoCAD - Dummys

Zoomen und Schwenken in AutoCAD - Dummys

AutoCAD erleichtert das Schwenken, indem es Bildlaufleisten und Echtzeit-Schwenken bietet. Beim Echtzeit-Panning (im Gegensatz zum Vorgabezeit-Panning?) Können Sie Objekte auf dem Bildschirm sehen, wenn Sie die Maus nach oben und unten oder vor und zurück bewegen. Natürlich bewegt sich der Standpunkt, nicht die Objekte. Sowohl das Schwenken als auch das Zoomen ändern die Ansicht ...

Mit AutoCAD LT 2005 DesignCenter - Dummies

Mit AutoCAD LT 2005 DesignCenter - Dummies

DesignCenter ist ein dummer Name für eine nützliche, wenn auch etwas ausgelastete Palette. Die DesignCenter-Palette ist praktisch für das Extrahieren von Daten aus allen Arten von Zeichnungen. Während sich die Eigenschaftenpalette mit Objekteigenschaften beschäftigt, behandelt die DesignCenter-Palette hauptsächlich benannte Objekte: Ebenen, Linientypen, Blockdefinitionen (dh Symboldefinitionen), Textstile und andere Organisationsobjekte ...

Was Sie über AutoCAD-Koordinatensysteme wissen sollten - Dummies

Was Sie über AutoCAD-Koordinatensysteme wissen sollten - Dummies

Jeder Punkt in einer AutoCAD-Zeichnungsdatei kann identifiziert werden durch seine X-, Y-, Z-Koordinaten. (In den meisten 2D-Zeichnungen ist der Z-Koordinatenwert 0. 0.) Dieses Koordinatensystem wird in AutoCAD als Weltkoordinatensystem oder WCS bezeichnet. Koordinateneingabe Die direkteste Methode, um Punkte präzise einzugeben, ist die Eingabe von Zahlen mit dem ...