AST (Fach) / Teil 1 (Lektion)

In dieser Lektion befinden sich 15 Karteikarten

Angewandte Software-Technik MTD, 3. Semester

Diese Lektion wurde von zrah erstellt.

Lektion lernen

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 constant­expression #else #error "Zeichenkette" #if constant­expression    #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)