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.

DatentypWertebereichGröße
booltrue/false8 Bit
char-128 .. 1278 Bit
int-32 768 .. 32 76716 Bit
float1.17E-38 .. 3.4E3832 Bit
double2.2E-308 .. 1.8E30864 Bit
voidentspricht 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.

DatentypWertebereichGröße
unsigned char0 .. 2558 Bit
unsigned int0 .. 65 53516 Bit
short (int)-32 768 .. 32 76716 Bit
long (int)-2 147 483 648 .. 2 147 483 64732 Bit
unsigned long (int)0 .. 4 294 967 29532 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.

 

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

OperatorBezeichnung
+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)

OperatorBezeichnung
<kleiner
<=kleiner oder gleich
>größer
>=größer oder gleich
==gleich
!=ungleich

Logische Operatoren (Aussagenlogik)

OperatorBezeichnung
!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

OperatorBezeichnung
~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;
}

Werbung

Mit Programmier-Skills perfekt für die Zukunft aufgestellt! Die Kurse gehen schon bei 11,99 € los!
Top-Online-Kurse in „IT & Software“