Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
objektorientierte_programmiersprachen [2012/10/10 13:52] escheobjektorientierte_programmiersprachen [2019/07/22 16:18] (aktuell) – [zusätzlicher Sprachumfang von C++ (Auszug)] huwi
Zeile 6: Zeile 6:
  
 ===== der Sprachumfang von C (Auszug) ===== ===== der Sprachumfang von C (Auszug) =====
->>><code>+><code>
 // Schlüsselworte .......................................... // Schlüsselworte ..........................................
 break double int struct break double int struct
Zeile 32: Zeile 32:
 In den strukturierten Sprachen gibt es zwar noch weitere Spielarten dieser drei Grundstrukturen, aber dem Wesen nach gibt es tatsächlich nur diese drei. Im Folgenden soll dargestellt werden wie diese Algorithmusbausteine  in C und dann natürlich auch in C++ notiert werden. Beachten Sie die geschweiften Klammern! Diese begrenzen einen Anweisungsblock und sollten immer, besonders am Anfang, diszipliniert gesetzt werden.  In den strukturierten Sprachen gibt es zwar noch weitere Spielarten dieser drei Grundstrukturen, aber dem Wesen nach gibt es tatsächlich nur diese drei. Im Folgenden soll dargestellt werden wie diese Algorithmusbausteine  in C und dann natürlich auch in C++ notiert werden. Beachten Sie die geschweiften Klammern! Diese begrenzen einen Anweisungsblock und sollten immer, besonders am Anfang, diszipliniert gesetzt werden. 
  
->>><code cpp>+><code cpp>
 // Blöcke in C und C++ // Blöcke in C und C++
 { // BEGIN { // BEGIN
Zeile 40: Zeile 40:
  
 Blöcke können zusätzlich einen Namen und Parameter erhalten. Das sieht dann in etwa so aus: Blöcke können zusätzlich einen Namen und Parameter erhalten. Das sieht dann in etwa so aus:
->>><code cpp>+><code cpp>
 name ( parameter ) name ( parameter )
 { // BEGIN { // BEGIN
Zeile 51: Zeile 51:
 Das Weglassen von Klammern in bestimmten Fällen sind eben genau Sonderfälle und diese sollte man sich als Einsteiger erst mal sparen. Übrigens gibt es die Blockbildung in allen strukturierten Sprachen. Manchmal sind das statt Klammern Schlüsselworte wie //BEGIN// oder //END//. Das gleiche gilt für das Semikolon. Ein Semikolon ist in C das Endekennzeichen einer Anweisung und für den Compiler extrem wichtig. Notieren Sie eine Anweisung immer in einer eigenen Zeile und schließen diese immer mit einem Semikolon ab. Das Einrücken der Anweisungen mit einem //TAB// innerhalb eines Blocks hilft den Überblick zu bewahren. Das Weglassen von Klammern in bestimmten Fällen sind eben genau Sonderfälle und diese sollte man sich als Einsteiger erst mal sparen. Übrigens gibt es die Blockbildung in allen strukturierten Sprachen. Manchmal sind das statt Klammern Schlüsselworte wie //BEGIN// oder //END//. Das gleiche gilt für das Semikolon. Ein Semikolon ist in C das Endekennzeichen einer Anweisung und für den Compiler extrem wichtig. Notieren Sie eine Anweisung immer in einer eigenen Zeile und schließen diese immer mit einem Semikolon ab. Das Einrücken der Anweisungen mit einem //TAB// innerhalb eines Blocks hilft den Überblick zu bewahren.
  
->>><code cpp>+><code cpp>
 int A,B,C; int A,B,C;
  
Zeile 62: Zeile 62:
 </code> </code>
  
->>><code cpp>+><code cpp>
 // eine Wiederholung ......................................... // eine Wiederholung .........................................
 while ( A < 100 ) // wiederhole ( solange ) while ( A < 100 ) // wiederhole ( solange )
Zeile 70: Zeile 70:
 </code> </code>
  
->>><code cpp>+><code cpp>
 // eine Alternative .......................................... // eine Alternative ..........................................
 if ( A == 0) // wenn ( das wahr ist ) if ( A == 0) // wenn ( das wahr ist )
Zeile 82: Zeile 82:
 </code> </code>
  
->>><code cpp>+><code cpp>
 // ----------------------------------------------------------- // -----------------------------------------------------------
 // ausgewählte Spielarten // ausgewählte Spielarten
Zeile 117: Zeile 117:
 </code> </code>
  
-===== Zusätzlicher Sprachumfang von C++ (Auszug) ===== +===== zusätzlicher Sprachumfang von C++ (Auszug) ===== 
->>><code>+><code>
 bool catch  false enum bool catch  false enum
 class new delete public template  class new delete public template 
Zeile 129: Zeile 129:
  
 ===== Deklarieren von Klassen in C++ ===== ===== Deklarieren von Klassen in C++ =====
-Es ist ein Anwendungsprogramm mit dem Namen Applikation (englisch: //Application//) zu entwickeln. Die Anwendung soll zunächst geplant und dann programmiert werden und letztlich benötigen wir eine Instanz von dem Programm.+Es ist ein Anwendungsprogramm mit dem Namen Applikation (englisch: //Application//) zu entwickeln. Die Anwendung soll zunächst geplant und dann programmiert werden und letztlich benötigen wir noch eine Instanz von dem Programm.
  
->>>{{:app.jpg?150|}}+>{{:app.jpg?150|}}
  
->>><code cpp>+><code cpp>
 // Klasse Name { Bauplan } Instanz; // Klasse Name { Bauplan } Instanz;
 class Application class Application
Zeile 144: Zeile 144:
 Die Applikation **ist eine** Mikrocontrolleranwendung. Diese soll alle Möglichkeiten  der vorhandenen Klasse Controller besitzen. Somit erbt die Applikation am besten alle Merkmale vom Controller.  Die Applikation **ist eine** Mikrocontrolleranwendung. Diese soll alle Möglichkeiten  der vorhandenen Klasse Controller besitzen. Somit erbt die Applikation am besten alle Merkmale vom Controller. 
  
->>><code cpp>+><code cpp>
 // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz; // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz;
 class Application : public Controller class Application : public Controller
Zeile 155: Zeile 155:
 Der Controller wird eingeschaltet und arbeitet dann fortlaufend taktgesteuert. Oh ja, wir erinnern uns dunkel. Subjekt und Prädikat. **WER** (der Controller) macht **WAS** (wird eingeschaltet, arbeitet)... Dafür sollte es jetzt Operationen in der Klasse geben. Der Controller wird eingeschaltet und arbeitet dann fortlaufend taktgesteuert. Oh ja, wir erinnern uns dunkel. Subjekt und Prädikat. **WER** (der Controller) macht **WAS** (wird eingeschaltet, arbeitet)... Dafür sollte es jetzt Operationen in der Klasse geben.
  
->>><code cpp>+><code cpp>
 // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz; // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz;
 class Application : public Controller class Application : public Controller
Zeile 181: Zeile 181:
 Es soll eine LED angeschlossen werden. An diese LED wollen wir niemand anderen heran lassen. Wir schützen diese vor unberechtigtem Zugriff. Es soll eine LED angeschlossen werden. An diese LED wollen wir niemand anderen heran lassen. Wir schützen diese vor unberechtigtem Zugriff.
  
->>><code cpp>+><code cpp>
 // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz; // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz;
 class Application : public Controller class Application : public Controller
Zeile 202: Zeile 202:
 Die LED ist eine fertige Klasse aus dem Framework. Wir müssen der LED mitteilen, an welchem Port-Pin sie angeschlossen ist und wir wollen sie einschalten. Die LED ist eine fertige Klasse aus dem Framework. Wir müssen der LED mitteilen, an welchem Port-Pin sie angeschlossen ist und wir wollen sie einschalten.
  
->>><code cpp>+><code cpp>
 // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz; // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz;
 class Application : public Controller class Application : public Controller