text.skipToContent text.skipToNavigation
background-image

Moderne C++ Programmierung Klassen, Templates, Design Patterns von Schneeweiß, Ralf (eBook)

  • Erscheinungsdatum: 27.09.2006
  • Verlag: Springer-Verlag
eBook (PDF)
6,99 €
inkl. gesetzl. MwSt.
Sofort per Download lieferbar

Online verfügbar

Moderne C++ Programmierung

C++ ist eine objektorientierte Programmiersprache, neben der Objektorientierung gewinnt aber die generische Programmierung mittels parametrisierbaren Klassen oder Templates zunehmend an Bedeutung, da diese Methode große Vorteile gegenüber der objektorientierten aufweist, wenn es darum geht, wiederverwendbaren Code zu schreiben. Dieses Buch liefert eine fundierte Darstellung des modernen Programmdesigns in C++ gemäß dem ANSI/ISO-Standard. Der Autor gibt dabei zunächst ein kompaktes Repetitorium der grundlegenden Sprachelemente von C++ und erläutert dann detailliert die klassische objektorientierte Modellierung sowie die modernen Techniken der generischen Programmierung mittels Templates und Design Patterns.

Produktinformationen

    Format: PDF
    Kopierschutz: AdobeDRM
    Seitenzahl: 413
    Erscheinungsdatum: 27.09.2006
    Sprache: Deutsch
    ISBN: 9783540459545
    Verlag: Springer-Verlag
    Größe: 2379 kBytes
Weiterlesen weniger lesen

Moderne C++ Programmierung

4 Generische und generative Programmierung mit C++ (S. 221-222)

Mit der Einführung von Templates in C++ hielt auch gleich ein ganz anderes Programmier-Paradigma Einzug in die Sprache. Templates stellen nichts zur Verfügung, das die Objektorientierte Programmierung in irgendeiner Weise unterstützen würde. Man muss in der Templateprogrammierung mit Vorgehensweisen arbeiten, die nichts mit der Objektorientierung zu tun haben. Doch welche Vorgehensweisen sind es dann, die man in der Templateprogrammierung einsetzen kann?

Eisenäcker und Czarnecki haben diese Frage in ihrem Buch "Generative Programming. Methods, Tools and Applications." [CzarneckiEisenecker00] etwas genauer untersucht und einen theoretischen Unterbau erarbeitet. Deshalb seien an dieser Stelle einigewichtige Ideen aus der genannten Publikation dargestellt: DieTemplateprogrammierungwirdauch gerne als"generische" Programmierung oder als "generative" Programmierung bezeichnet. Dabei bezeichnen dieAdjektive generisch und generativ zwei unterschiedlicheAspekte.Generisch bezeichnet die Anpassbarkeit eines Moduls, einer Komponente oder einfach eines Stücks Software an unterschiedliche Gegebenheiten und Anforderungen.

Generativ dagegen bedeutet dieMöglichkeit, etwas automatisch erzeugen zu lassen. Die Entwicklung von Vorlagen zur Erzeugung weiteren Codes und deren Nutzung bezeichnet man als generative Programmierung. BeideAspekte sind Domänen der Templateprogrammierung mehr als der Objektorientierung.Während die Objektorientierung eine Technologie der Strukturierung von Software ist, ist die generische und die generative Programmierung eine Technologie umWiederverwendbarkeit von Code zu erreichen. Auch wennWiederverwendbarkeit als Schlagwort in fast allen Lehrbüchern zur Objektorientierung genannt wird, finden sich doch nur sehr wenige objektorientierte Techniken, die speziell die Wiederverwendbarkeit zum Ziel haben.DieWiederverwendbarkeit bleibt in objektorientierten Projekten meist auf dem Stand, auf dem sie in Projekten mit strukturierter Programmierung auch schon war.Anpassbare – generische – Codeteile sind zur Wiederverwendung geschrieben. Erzeugende – generative – Codeschablonen sind auch in ihrer Rolle zurWiederverwendung geschrieben. Da Templates in C++ zur Compilezeit abgearbeitet werden, beziehen sich sowohl die generischen wie auch die generativen Fähigkeiten auf diese Zeitphase.

Es ist in C++ grundsätzlich der Compiler, der die generischen und generativen Fähigkeiten besitzen muss, die mit den Templates genutzt werden. Wie man diese Fähigkeiten strukturiert nutzt, haben die Autoren von [CzarneckiEisenecker00] auch ein Stück weit erarbeitet.AndreiAlexandrescu ist mit seiner Publikation "Modern C++ Design. Generic Programming and Design Patterns Applied." [Alexandrescu01] auf diesem Weg noch ein Stück weiter gegangen und hat einigeMethoden vorgeschlagen,wie Templates nutzbringend in Framework- und Applikationsentwicklung einzusetzen sind. Eines seiner bekanntesten Konzepte ist das "Policy Based Design", das im Prinzip auf einem Template-basierten Strategiemuster beruht und einen aspektorientierten Ansatz in C++ einführt.

4.1 Templates

In diesem Abschnitt wird die Syntax der Template-Programmierung behandelt, ohne auf deren Bedeutung für den Systementwurf einzugehen. Diese Aufgabe übernimmt der Abschnitt 4.2 ab Seite 268. Hier werden also die wesentlichen Regeln für die Codierung aufgelistet und deren Syntax durchgesprochen, damit an späterer Stelle darauf verwiesen werden kann.DieTemplates waren noch nicht von Anfang an Bestandteil der Sprache C++. Sie wurden erst Anfang der 90er Jahre in die Beschreibung der Sprache aufgenommen. Die Unterst&uum

Weiterlesen weniger lesen

Kundenbewertungen