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/04/19 09:42]
huwaldt
objektorientierte_programmiersprachen [2019/07/27 16:36]
huwi
Zeile 3: Zeile 3:
  
 ===== 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 29: Zeile 30:
 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 38: Zeile 39:
 Das Weglassen von Klammern in bestimmten Fällen sind eben genau das, 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 gewährleistet den Überblick zu bewahren. Das Weglassen von Klammern in bestimmten Fällen sind eben genau das, 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 gewährleistet den Überblick zu bewahren.
  
->>><​code cpp>+><​code cpp>
 int A,B,C; int A,B,C;
  
Zeile 100: Zeile 101:
  
 ===== 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 113: Zeile 114:
 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 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 126: Zeile 127:
 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. ​
  
->>>​{{:​mcu.jpg?​380|}}+>​{{:​mcu.jpg?​380|}}
  
->>><​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 139: Zeile 140:
 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.
  
->>>​{{:​poweron.jpg?​450|}}+>​{{:​poweron.jpg?​450|}}
  
->>><​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 156: Zeile 157:
       // alles was fortlaufend getan werden muss       // alles was fortlaufend getan werden muss
       // die Mainloop liegt in der Controllerklasse       // die Mainloop liegt in der Controllerklasse
-      // von dort aus wird onWork getriggert+      // von dort aus wird onWork ​fortlaufend aufgerufen (getriggert)
       // hier also KEINE Unendlichschleife !!!       // hier also KEINE Unendlichschleife !!!
    }    }
Zeile 167: Zeile 168:
 Es soll eine LED angeschlossen werden. An diese LED wollen wir niemand anderes heranlassen. Wir schützen diese vor unberechtigtem Zugriff. Es soll eine LED angeschlossen werden. An diese LED wollen wir niemand anderes heranlassen. Wir schützen diese vor unberechtigtem Zugriff.
  
->>>​{{:​hatled.jpg?​380|}}+>​{{:​hatled.jpg?​380|}}
  
->>><​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 190: Zeile 191:
 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.
  
->>>​{{:​ledon.jpg?​400|}}+>​{{:​ledon.jpg?​400|}}
  
->>><​code cpp>+><​code cpp>
 // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz; // Klasse Name : Sichtbarkeit Basisklasse { Bauplanerweiterung } Instanz;
 class Application : public Controller class Application : public Controller