3.3 Klassen
Contents
3.3 Klassen#
In dieser Aufgabe soll eine erste Klasse Account
erzeugt werden: Diese soll intern den aktuellen Kontostand vorhalten und Zugriffsmethoden zur Einzahlung, zum Abheben und zum Transfer sowie zum Abruf des Kontostandes bereitstellen.
Legen Sie eine Datei
customer.cpp
an.Implementieren Sie die Klasse Account in der Datei
customer.cpp
.
Überlegen Sie sich dabei sinnvolle Parameter für die Funktionen
deposit
,withdraw
undtransfer
.Beachten Sie, dass Überweisungen ausschließlich auf andere Konten durchgeführt werden können.
Fügen Sie einen Konstruktor hinzu, mit dem ein Account mit Startguthaben angelegt werden kann.
Implementieren Sie in der Datei
customer.cpp
einemain
-Funktion und testen Sie die Klasse Account.
Aufruf#
Dies Programm sollen sie im Terminal (auch möglich auf dem Jupyterhub) kompilieren und aufrufen.
Kompilieren Sie Ihr Programm mit
g++ -std=c++20 -Wall -Wextra -pedantic -o customer customer.cpp
Ausführen:
./customer
Test#
Zum Testen der Funktion sind ein paar Beispielaufrufe angegeben:
int main() {
std::cout << std::boolalpha;
Account a{ 25 };
a.deposit( 75 );
a.deposit( 50 );
std::cout << (a.balance() == 150) << std::endl; // true
std::cout << a.withdraw( 25 ) << std::endl; // 25
std::cout << (a.balance() == 125) << std::endl; // true
std::cout << a.withdraw( 150 ) << std::endl; // 0
Account b{ a };
std::cout << a.transfer( 50, a) << std::endl; // false
std::cout << a.transfer( 126, b ) << std::endl; // false
std::cout << a.transfer( 125, b ) << std::endl; // true
std::cout << (a.balance() == 0) << std::endl; // true
std::cout << (b.balance() == 250) << std::endl; // true
}
Aufgabenteil B) Vererbung#
Implementieren Sie eine Klasse
Person
mit einem Namen und einem Alter in einer Dateiperson.cpp
.Implementieren Sie die Klasse
Customer
nun abgeleitet vonPerson
. Die Klasse erbt so und soll dazu einenAccount
und eine ID (z. B.unsigned int
) besitzen.Fügen Sie in beiden Klassen eine Funktion
print
hinzu, die den Zustand des Objekts (Werte aller Attribute) ausgibt.Achten Sie auf die Verwendung von
virtual
!
Link zu weiteren Materialien#
Alle Materialien werden auf den Servern der Universität Münster gehostet.
Die im Kurs präsentierten Slides sind hier zu finden. Hierin werden grundlegende Konzepte eingeführt und veranschaulicht.
Ansonsten organisiert dies jupyterbook die verschiedenen Aufgaben und Tasks (größere, zusammenhängende Programmieraufgabe).