From 1827b3d2984998ccc18e0a5424032e6c42116533 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Mon, 8 Feb 2021 11:20:10 +0100 Subject: [PATCH] Beispiele 4.2.2021, Praktikumsunterlagen aktualisiert --- 20210204/hp-2020ws-p4.pdf | Bin 102871 -> 103781 bytes 20210204/hp-2020ws-p4.tex | 7 ++++ 20210204/objects-11a.c | 75 ++++++++++++++++++++++++++++++++++ 20210204/objects-11b.c | 76 +++++++++++++++++++++++++++++++++++ 20210204/objects-11c.c | 76 +++++++++++++++++++++++++++++++++++ 20210204/objects-11d.c | 76 +++++++++++++++++++++++++++++++++++ 20210204/objects-11e.c | 76 +++++++++++++++++++++++++++++++++++ 20210204/objects-11f.c | 77 +++++++++++++++++++++++++++++++++++ 20210204/objects-11g.c | 82 ++++++++++++++++++++++++++++++++++++++ 20210204/objects-11h.c | 81 +++++++++++++++++++++++++++++++++++++ 20210204/objects-11i.c | 79 ++++++++++++++++++++++++++++++++++++ 20210204/objects-13.c | 2 +- 20210204/objects-13a.c | 75 ++++++++++++++++++++++++++++++++++ 20210204/objects-14.c | 82 ++++++++++++++++++++++++++++++++++++++ 20210204/objects-15.c | 82 ++++++++++++++++++++++++++++++++++++++ 20210204/objects-16.cpp | 52 ++++++++++++++++++++++++ 16 files changed, 997 insertions(+), 1 deletion(-) create mode 100644 20210204/objects-11a.c create mode 100644 20210204/objects-11b.c create mode 100644 20210204/objects-11c.c create mode 100644 20210204/objects-11d.c create mode 100644 20210204/objects-11e.c create mode 100644 20210204/objects-11f.c create mode 100644 20210204/objects-11g.c create mode 100644 20210204/objects-11h.c create mode 100644 20210204/objects-11i.c create mode 100644 20210204/objects-13a.c create mode 100644 20210204/objects-14.c create mode 100644 20210204/objects-15.c create mode 100644 20210204/objects-16.cpp diff --git a/20210204/hp-2020ws-p4.pdf b/20210204/hp-2020ws-p4.pdf index 21bff505fd5fa6ca5d8913a694261a19ac6f55fd..1f17c91ca4ab823ea9f3781f79b36d148b0d36c6 100644 GIT binary patch delta 28129 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 Ov56&@s;aBM8y5h8k@p|~ delta 27243 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 LQdM>JcjE#8dZPP) diff --git a/20210204/hp-2020ws-p4.tex b/20210204/hp-2020ws-p4.tex index c5eb30c..bb2a1a7 100644 --- a/20210204/hp-2020ws-p4.tex +++ b/20210204/hp-2020ws-p4.tex @@ -90,6 +90,13 @@ \end{lstlisting} (Den Backslash am Ende der ersten Zeile entfällt, wenn Sie den ganzen Befehl in eine einzige Zeile schreiben.) + \item + \textbf{Abgabe:} + Ihre Quelltexte mit den Lösungen der Praktikumsaufgabe schicken Sie bitte + per E-Mail an \file{peter.gerwinski@hs-bochum.de} + mit dem \textbf{Betreff:} \lstinline[style=terminal]{eif7booD} + unter Angabe von Name, Matrikel-Nummer, + Studiengang (MI/MP/TI) und Studienmodell (KIA/KIS/GS). \end{itemize} \bigskip diff --git a/20210204/objects-11a.c b/20210204/objects-11a.c new file mode 100644 index 0000000..8be8d4e --- /dev/null +++ b/20210204/objects-11a.c @@ -0,0 +1,75 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); +} + +void print_string (t_object *this) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i]); + + return 0; +} diff --git a/20210204/objects-11b.c b/20210204/objects-11b.c new file mode 100644 index 0000000..3b3a798 --- /dev/null +++ b/20210204/objects-11b.c @@ -0,0 +1,76 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this, char *comment) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + printf ("Kommentar: %s\n", comment); +} + +void print_string (t_object *this) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i]); + + return 0; +} diff --git a/20210204/objects-11c.c b/20210204/objects-11c.c new file mode 100644 index 0000000..50c5c3a --- /dev/null +++ b/20210204/objects-11c.c @@ -0,0 +1,76 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this, char *comment) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + printf ("Kommentar: %s\n", comment); +} + +void print_string (t_object *this) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i]); + + return 0; +} diff --git a/20210204/objects-11d.c b/20210204/objects-11d.c new file mode 100644 index 0000000..283a3ec --- /dev/null +++ b/20210204/objects-11d.c @@ -0,0 +1,76 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this, char *comment) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + printf ("Kommentar: %s\n", comment); +} + +void print_string (t_object *this) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i], "Dies ist ein Test."); + + return 0; +} diff --git a/20210204/objects-11e.c b/20210204/objects-11e.c new file mode 100644 index 0000000..47184be --- /dev/null +++ b/20210204/objects-11e.c @@ -0,0 +1,76 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this, char *comment) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + printf ("Kommentar: %s\n", comment); +} + +void print_string (t_object *this) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i], "Dies ist ein Test."); + + return 0; +} diff --git a/20210204/objects-11f.c b/20210204/objects-11f.c new file mode 100644 index 0000000..6c46738 --- /dev/null +++ b/20210204/objects-11f.c @@ -0,0 +1,77 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this, char *comment) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + printf ("Kommentar: %s\n", comment); +} + +void print_string (t_object *this, char *comment) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); + (void) comment; +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i], "Dies ist ein Test."); + + return 0; +} diff --git a/20210204/objects-11g.c b/20210204/objects-11g.c new file mode 100644 index 0000000..80b6e8a --- /dev/null +++ b/20210204/objects-11g.c @@ -0,0 +1,82 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this, char *comment); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this, char *comment) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + printf ("Kommentar: %s\n", comment); +} + +void print_string (t_object *this) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); +} + +void print_string (t_object *this, char *comment) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); + printf ("Kommentar: %s\n", comment); +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i], "Dies ist ein Test."); + + return 0; +} diff --git a/20210204/objects-11h.c b/20210204/objects-11h.c new file mode 100644 index 0000000..717922a --- /dev/null +++ b/20210204/objects-11h.c @@ -0,0 +1,81 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this, void *data); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this, void *data); + int content; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this, void *data); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this, void *data) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + if (data) + { + char *comment = data; + printf ("Kommentar: %s\n", comment); + } +} + +void print_string (t_object *this, void *data) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); + (void) data; +} + +t_object *new_integer (int i) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i], "Dies ist ein Test."); + + return 0; +} diff --git a/20210204/objects-11i.c b/20210204/objects-11i.c new file mode 100644 index 0000000..bda518a --- /dev/null +++ b/20210204/objects-11i.c @@ -0,0 +1,79 @@ +#include <stdio.h> +#include <stdlib.h> + +#define T_BASE 0 +#define T_INTEGER 1 +#define T_STRING 2 + +union t_object; + +typedef struct +{ + int type; + void (* print) (union t_object *this); +} t_base; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + int content; + char *comment; +} t_integer; + +typedef struct +{ + int type; + void (* print) (union t_object *this); + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +void print_integer (t_object *this) /* virtuelle Methode des Objekts t_integer */ +{ + printf ("Integer: %d\n", this->integer.content); + if (this->integer.comment) + printf ("Kommentar: %s\n", this->integer.comment); +} + +void print_string (t_object *this) /* virtuelle Methode des Objekts t_string */ +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_object *new_integer (int i, char *comment) /* Konstruktor des Objekts t_integer */ +{ + t_object *p = malloc (sizeof (t_integer)); /* Anforderung von Speicherplatz */ + p->integer.type = T_INTEGER; + p->integer.print = print_integer; /* Zuweisung der virtuellen Methode */ + p->integer.content = i; /* Initialisierung des Objekts */ + p->integer.comment = comment; /* Initialisierung des Objekts */ + return p; +} + +t_object *new_string (char *s) /* Konstruktor des Objekts t_string */ +{ + t_object *p = malloc (sizeof (t_string)); + p->string.type = T_STRING; + p->string.print = print_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42, "Dies ist ein Test."), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.print (object[i]); + + return 0; +} diff --git a/20210204/objects-13.c b/20210204/objects-13.c index 81ef279..8cbf2d4 100644 --- a/20210204/objects-13.c +++ b/20210204/objects-13.c @@ -57,7 +57,7 @@ t_object *new_integer (int i) t_object *new_string (char *s) { t_object *p = malloc (sizeof (t_string)); - p->integer.vmt = &vmt_string; + p->string.vmt = &vmt_string; p->string.content = s; return p; } diff --git a/20210204/objects-13a.c b/20210204/objects-13a.c new file mode 100644 index 0000000..83d01ab --- /dev/null +++ b/20210204/objects-13a.c @@ -0,0 +1,75 @@ +#include <stdio.h> +#include <stdlib.h> + +union t_object; +struct t_vmt; + +typedef struct +{ + struct t_vmt *vmt; +} t_base; + +typedef struct +{ + struct t_vmt *vmt; + int content; +} t_integer; + +typedef struct +{ + struct t_vmt *vmt; + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +typedef struct t_vmt +{ + void (* print) (union t_object *this); +} t_vmt; + +void print_integer (t_object *this) +{ + printf ("Integer: %d\n", this->integer.content); +} + +void print_string (t_object *this) +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_vmt vmt_integer = { print_integer }; +t_vmt vmt_string = { print_string }; + +t_object *new_integer (int i) +{ + t_object *p = malloc (sizeof (t_integer)); + p->base.vmt = &vmt_integer; + p->integer.content = i; + return p; +} + +t_object *new_string (char *s) +{ + t_object *p = malloc (sizeof (t_string)); + p->base.vmt = &vmt_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.vmt->print (object[i]); + + return 0; +} diff --git a/20210204/objects-14.c b/20210204/objects-14.c new file mode 100644 index 0000000..acd20b5 --- /dev/null +++ b/20210204/objects-14.c @@ -0,0 +1,82 @@ +#include <stdio.h> +#include <stdlib.h> + +union t_object; +struct t_vmt; + +typedef struct +{ + struct t_vmt *vmt; +} t_base; + +typedef struct +{ + struct t_vmt *vmt; + int content; +} t_integer; + +typedef struct +{ + struct t_vmt *vmt; + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +typedef struct t_vmt +{ + void (* print) (union t_object *this); +} t_vmt; + +void print_integer (t_object *this) +{ + printf ("Integer: %d\n", this->integer.content); +} + +void print_integer_with_comment (t_object *this, char *comment) +{ + printf ("%s: %d\n", comment, this->integer.content); +} + +void print_string (t_object *this) +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_vmt vmt_integer = { print_integer }; +t_vmt vmt_string = { print_string }; + +t_object *new_integer (int i) +{ + t_object *p = malloc (sizeof (t_integer)); + p->base.vmt = &vmt_integer; + p->integer.content = i; + return p; +} + +t_object *new_string (char *s) +{ + t_object *p = malloc (sizeof (t_string)); + p->base.vmt = &vmt_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.vmt->print (object[i]); + + print_integer_with_comment (object[1], "Die Antwort lautet"); + + return 0; +} diff --git a/20210204/objects-15.c b/20210204/objects-15.c new file mode 100644 index 0000000..b0ef554 --- /dev/null +++ b/20210204/objects-15.c @@ -0,0 +1,82 @@ +#include <stdio.h> +#include <stdlib.h> + +union t_object; +struct t_vmt; + +typedef struct +{ + struct t_vmt *vmt; +} t_base; + +typedef struct +{ + struct t_vmt *vmt; + int content; +} t_integer; + +typedef struct +{ + struct t_vmt *vmt; + char *content; +} t_string; + +typedef union t_object +{ + t_base base; + t_integer integer; + t_string string; +} t_object; + +typedef struct t_vmt +{ + void (* print) (union t_object *this); +} t_vmt; + +void print_integer (t_object *this) +{ + printf ("Integer: %d\n", this->integer.content); +} + +void print_integer_with_comment (t_object *this, char *comment) +{ + printf ("%s: %d\n", comment, this->integer.content); +} + +void print_string (t_object *this) +{ + printf ("String: \"%s\"\n", this->string.content); +} + +t_vmt vmt_integer = { print_integer }; +t_vmt vmt_string = { print_string }; + +t_object *new_integer (int i) +{ + t_object *p = malloc (sizeof (t_integer)); + p->base.vmt = &vmt_integer; + p->integer.content = i; + return p; +} + +t_object *new_string (char *s) +{ + t_object *p = malloc (sizeof (t_string)); + p->base.vmt = &vmt_string; + p->string.content = s; + return p; +} + +int main (void) +{ + t_object *object[] = { new_integer (42), + new_string ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->base.vmt->print (object[i]); + + print_integer_with_comment (object[0], "Die Antwort lautet"); + + return 0; +} diff --git a/20210204/objects-16.cpp b/20210204/objects-16.cpp new file mode 100644 index 0000000..ea40a13 --- /dev/null +++ b/20210204/objects-16.cpp @@ -0,0 +1,52 @@ +#include <stdio.h> + +struct TBase +{ + virtual void print () = 0; +}; + +struct TInteger: TBase +{ + int content; + virtual void print (); + TInteger (int i); +}; + +struct TString: TBase +{ + char *content; + virtual void print (); + TString (char *s); +}; + +void TInteger::print () +{ + printf ("Integer: %d\n", content); +} + +void TString::print () +{ + printf ("String: \"%s\"\n", content); +} + +TInteger::TInteger (int i) +{ + content = i; +} + +TString::TString (char *s) +{ + content = s; +} + +int main (void) +{ + TBase *object[] = { new TInteger (42), + new TString ("Hello, world!"), + NULL }; + + for (int i = 0; object[i]; i++) + object[i]->print (); + + return 0; +} -- GitLab