AST (Fach) / Teil 1 (Lektion)
In dieser Lektion befinden sich 15 Karteikarten
Angewandte Software-Technik MTD, 3. Semester
Diese Lektion wurde von zrah erstellt.
Diese Lektion ist leider nicht zum lernen freigegeben.
- Mermale von C++ prozedural =!=J modular =J strukturiert =J Programmierung mit selbst definierten Datentypen =J objektorientiert =J generische Programmierung (Templates) =J (ab J5)
- C++ Vorteile Erzeugung von hocheffizientem Code möglich sowohl maschinennahe als auch abstrakte Programmierung hohe Flexibilität und weite Verbreitung kompatibel mit C aktuelle C++ Frameworks weit einwickelt
- C++ Nachteile Historischer Ballast aufgrund der C Kompatibilität Aktuelle Compiler noch nicht optimal hinsichtlich ISO-Standard Code-Größe und Geschwindigkeit Moderne Erfordernisse (TCP/IP, Threads, ...) nicht ausreichend unterstützt
- Compilieren ist ein mehrstufiger Prozess ....................... ....................... Programm.cpp ....................... ....................... eigene Header-Dateien ......... PräProzessor ........ System-Header-Dateien | | ....|.................. ....................... Programm.tmp ....................... .................|..... | | ....|.................. ....................... C++ Compiler ........................ .................|..... | |....|.................. ....................... Programm.obj ....................... ..................|..... | |eigene Biblioth. +weitere *.obj ..... Linker ..... System-Biblioth. +weitere *.obj....................... ....................... Programm.exe ....................... .......................
- Binäre Programmdatei - Aufbau - unterschiedlich je nach .. Aufbau:ELF-HeaderProgram-Header-TableSegment 1 (Code / Text)Segment 2 (Code / Text) ...Segment nSection-Header-Table .. je nach Compiler und Betriebssystem (OS)
- Hauptfunktion? deren Signatur / Prototyp? wieviele davon darf es geben? main-Funktionint main (int argc, char* argv[]);EINE pro Programm
- Modul "iostream" der Standardbib. - bekanntmachen? Elemente dieser Bib sind zusammengefasst in ... ? - Namensraum zur Verfügungen stellen - falls nicht zur Verfügung gestellt I / O ist darin vereinbart#include <iostream>...zusammengefasst im Namensraum "std" - using namespace std;- alle Elemente daraus mit "std::" qualifizieren / ausweisen (cout, cin, endl, ...)
- Ein- / Ausgabe mittels Operatoren << und >> << schreibt Daten von rechts auf Standard-Ausgabestrom cout (mit Konsole verb): cout << "Text" << endl; >> liest Daten vom Std.-Eingabestrom cin und speichert sie in Variable rechts:int i; cin >> i; cout, cin, endl vom Modul "iostream" (endl = end line = Zeilenumbruch)
- signailsiert erfolgreiche Programmausführung return EXIT_SUCCESS;
- Operatoren << und >> können ... Auswertung erfolgt ... Jeder Schritt hat .. ... kaskadiert werden... von li nach re... ein Ergebnis: Wert des Objektes, links vom Operator cout << "Hello," << " " << "world!" << endl; ------> Hello, cout << " " << "world!" << endl;
- EXIT_SUCCESS Rückgabewert der main-Funktion: int-Wert--> EXIT_SUCCESS ist int-Wert--> EXIT_SUCCESS ist in stdlib.h angeführt: #define EXIT_SUCCESS 0--> stdlib.h wird mittels #include <cstdlib> eingefügt
- Prozessoranweisungen # - Direktiven werden vom Prozessor ausgewertet:#include <dateiname> weist Präprozessor an, Kopie der Datei dateiname rekursiv in erstellte Temporäre Datei einzufügen
- Macro Definition #define MACRONAME wertim Quelltext wird MACRONAME durch wert ersetzt
- Präprozessor-Direktiven (Aufzählung) #define MACRO[(args)] expression #undef MACRO #elif constantexpression #else #error "Zeichenkette" #if constantexpression #ifdef MACRO #ifndef MACRO #endif #include <header.h> bzw. #include "header.h" #line number "dateiname" #pragma
- Aufteilen / Trennen des Codes ---> main.cpp---> main.cpp + dateiname.h---> main.cpp + dateiname.h + dateiname.cpp Schnittstelle: *.h, Implementierung: *.cpp #include <helloworld.h> in BEIDEN .cpp-Dateien (main.cpp + dateiname.cpp)