C++ Objektorientierte Programmiersprache
Grundlagen
Die Programmiersprache C++ ist eine objektorientierte Programmiersprache. Sie kann als Erweiterung der Programmiersprache C angesehen werden, somit stehen ihr auch alle Möglichkeiten zur Verfügung, die die Sprache bietet. Zum Beispiel wird die leistungsfähige maschinennahe Programmierung, die die Programmiersprache C mit sich bringt, geerbt. Bibliotheken die in C entwickelt wurden, können benutzt werden usw.
Neben der Einbindung der Programmiersprache C und der Nutzung derer Funktionen, bietet C++ noch vieles mehr – die Objektorientierung, spezielle Erweiterungen wie Exceptions, Templates uwm.
Objektorientierte Programmierung betrachtet Objekte der realen Welt (z.B.: Buch, Computer) und versucht Beziehungen und Strukturen abzubilden. Ein Objekt ist eine Instanz einer Klasse. Wobei der Zustand eines Objektes durch Attribute und Beziehungen repräsentiert wird und das Verhalten durch Operationen und Methoden.
Durch diese Abbildung von Objekten, ist die objektorientierte Software leichter zu warten und zu erweitern als prozedurale.
Zu Klassen und Objekten kommen wir jedoch später, zunächst ein paar grundlegende Programme.
Variablen und Datentypen
Mit Hilfe von Datentypen werden Variablen erstellt, die Zahlen, einzelne Zeichen und logische Werte interpretieren können. Bei der Initialisierung dieser Variablen, beanspruchen diese einen festen Speicherbereich, der in Byte bzw. Bit gemessen wird.
Um Informationen in einem Programm verarbeiten zu können werden Variablen benötigt. Die Variablen werden dann im Speicher des Rechners abgelegt indem genau so viel Speicherplatz reserviert wird, wie der Datentyp der Variable es vorgibt.
Datentyp | Wertebereich | Größe |
---|---|---|
bool | true/false | 8 Bit |
char | -128 .. 127 | 8 Bit |
int | -32 768 .. 32 767 | 16 Bit |
float | 1.17E-38 .. 3.4E38 | 32 Bit |
double | 2.2E-308 .. 1.8E308 | 64 Bit |
void | entspricht der leeren Menge |
Für die beiden ganzzahligen Datentypen char und int können spezielle modifizierer genutzt werden. Diese lauten short, long, signed und unsigned.
Datentyp | Wertebereich | Größe |
---|---|---|
unsigned char | 0 .. 255 | 8 Bit |
unsigned int | 0 .. 65 535 | 16 Bit |
short (int) | -32 768 .. 32 767 | 16 Bit |
long (int) | -2 147 483 648 .. 2 147 483 647 | 32 Bit |
unsigned long (int) | 0 .. 4 294 967 295 | 32 Bit |
Lebensdauer und Lage der Variablen im Systemspeicher
Wie lange die Lebensdauer und Lage der Variablen im Systemspeicher ist, kommt darauf an wie diese deklariert werden.
auto - ohne weitere Angabe sind alle Variablen vom Typ auto. Das bedeutet, dass diese im Speicher angelegt werden sobald das Programm über die Zeile, in der sie deklariert wurden läuft und wieder freigegeben werden sobald der Block verlassen wird. Die Lebensdauer einer Variable kann also bis zum Ende einer Funktion sein, oder auch nur solange eine Schleife durchlaufen wird. Genauer gesagt gehört zu einem Block alles was zwischen den geschweiften Klammern steht { }.
static - Variablen vom Typ static existieren während der gesamten Programmlebensdauer, also bis das Programm letztendlich beendet wird. Aus diesem Grund werden statische Variablen meistens auf dem Heap-Speicher angelegt.
const - Wie es der Name schon sagt, handelt es sich hier um konstante Variablen. Das beedeutet, dass der Wert der Variable nach der Initialisierung nicht mehr verändert werden darf.
Werbung
Hallo Welt
#include <iostream>
using namespace std;
// Beginn main-Funktion
int main () {
cout << "Hallo Welt" << endl;
return 0;
}
// Ende main-Funktion
Taschenrechner
#include <iostream>
using namespace std;
int main () {
double zahl1, zahl2, ergebnis;
char rechenoperation;
cout << "Bitte geben Sie eine Rechenoperation ein (+, -, *, /): " << endl;
cin >> rechenoperation;
cout << "Bitte geben Sie die erste Zahl ein: " << endl;
cin >> zahl1;
cout << "Bitte geben Sie die zweite Zahl ein: " << endl;
cin >> zahl2;
switch (rechenoperation) {
case '+' : ergebnis = zahl1 + zahl2; break;
case '-' : ergebnis = zahl1 - zahl2; break;
case '*' : ergebnis = zahl1 * zahl2; break;
case '/' : ergebnis = zahl1 / zahl2; break;
cout << "Unbekanntes Rechenzeichen" << endl;
}
cout << zahl1 << ' ' << rechenoperation << ' ' << zahl2 << " = " << ergebnis << endl;
return 0;
}
Volumen und Oberfläche eines Würfels berechnen
#include <iostream>
using namespace std;
double volumen (double a) {
double volumen;
volumen = a * a * a;
return volumen;
}
double oberflaeche (double a) {
double oberflaeche;
oberflaeche = 6 * a * a;
return oberflaeche;
}
int main () {
double kantenlänge;
cout << "Bitte geben Sie die Kantenlänge ein: " << endl;
cin >> kantenlänge;
cout << "Volumen: " << volumen(kantenlänge) << endl;
cout << "Oberfläche: " << oberflaeche(kantenlänge) << endl;
return 0;
}
Arithmetische Operatoren
Operator | Bezeichnung |
---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
% | Rest (Modulo) |
#include <iostream>
#include <iomanip> // Bibliothek zur Angabe der Nachkommastellen
using namespace std;
int main() {
int a = 4, b = 6;
long c = 7;
double z = 0;
cout << "Startwerte" << endl;
cout << "a = " << a << "\nb = " << b << "\nc = " << c << endl;
cout << "Berechnungen" << endl;
z = (double)a / (double)b;
// setprecision() = Funktion aus Bibliothek <iomanip>,
// zur Angabe der Nachkommastellen
cout << "z = a / b = " << setprecision(2) << z << endl;
if (a % 2 == 0) {
cout << "Zahl " << a << " = gerade" << endl;
} else {
cout << "Zahl " << a << " = ungerade" << endl;
}
}
Relationale Operatoren (Vergleichsoperatoren)
Operator | Bezeichnung |
---|---|
< | kleiner |
<= | kleiner oder gleich |
> | größer |
>= | größer oder gleich |
== | gleich |
!= | ungleich |
Logische Operatoren (Aussagenlogik)
Operator | Bezeichnung |
---|---|
! | Negierung |
&& | UND-Verknüpfung |
|| | ODER-Verknüpfung |
#include <iostream>
using namespace std;
int main() {
int a=0, i=20, b=8;
while (a!=b && i>=a+b) {
cout << a << " ist ungleich " << b << endl;
a++;
}
cout << a << " ist gleich " << b << endl;
}
Bitoperatoren
Operator | Bezeichnung |
---|---|
~ | Bitkomplement |
<< | Linksschieben |
>> | Rechtsschieben |
& | bitweises UND |
^ | bitweises exklusives ODER |
| | bitweises ODER |
#include <iostream>
using namespace std;
int main() {
int x, y, z, a=7, b=12, c=15;
x = a & b;
z = a | b;
y = a ^ c;
cout << "Bitweise UND: " << x << endl;
cout << "Bitweise ODER: " << z << endl;
cout << "Bitweise XOR: " << y << endl;
}
Nächster ArtikelInstallation und EinrichtungEntwicklungsumgebung, Compiler | keyboard_arrow_right |