From fd0e26bfe0676ac6bf74424e544d167fd5187400 Mon Sep 17 00:00:00 2001
From: Peter Gerwinski <peter.gerwinski@hs-bochum.de>
Date: Mon, 3 Apr 2023 21:46:33 +0200
Subject: [PATCH] Beispiele 30.3.2023

---
 20230323/functions-03a.c   |  18 +++++++
 20230323/void-07.c         |  13 +++++
 20230330/ad-20230330.pdf   | Bin 110523 -> 108378 bytes
 20230330/ad-20230330.tex   |  19 +++----
 20230330/const-01.c        |  12 +++++
 20230330/const-02.c        |  12 +++++
 20230330/const-03.c        |  11 ++++
 20230330/const-04.c        |  12 +++++
 20230330/const-05.c        |  12 +++++
 20230330/objects-01.c      |  28 ++++++++++
 20230330/objects-02.c      |  28 ++++++++++
 20230330/objects-03.c      |  34 +++++++++++++
 20230330/objects-04.c      |  34 +++++++++++++
 20230330/objects-05.c      |  34 +++++++++++++
 20230330/objects-06.c      |  39 ++++++++++++++
 20230330/objects-07.c      |  43 ++++++++++++++++
 20230330/objects-08.c      |  59 ++++++++++++++++++++++
 20230330/objects-09.c      |  69 +++++++++++++++++++++++++
 20230330/objects-09a.c     |  60 ++++++++++++++++++++++
 20230330/objects-09b.c     |  60 ++++++++++++++++++++++
 20230330/objects-09c.c     |  61 ++++++++++++++++++++++
 20230330/objects-10.c      |  76 ++++++++++++++++++++++++++++
 20230330/objects-11.c      |  78 ++++++++++++++++++++++++++++
 20230330/objects-12.c      |  69 +++++++++++++++++++++++++
 20230330/objects-13.c      |  75 +++++++++++++++++++++++++++
 20230330/objects-14.cpp    |  55 ++++++++++++++++++++
 20230330/objects-15.cpp    |  57 +++++++++++++++++++++
 20230330/objects-16.cpp    |  57 +++++++++++++++++++++
 20230330/objects-17.cpp    |  57 +++++++++++++++++++++
 20230330/objects-18.cpp    |  59 ++++++++++++++++++++++
 20230330/objects-19.cpp    |  62 +++++++++++++++++++++++
 20230330/objects-20.cpp    |  62 +++++++++++++++++++++++
 20230330/objects-21.cpp    |  62 +++++++++++++++++++++++
 20230330/objects-22.cpp    |  75 +++++++++++++++++++++++++++
 20230330/objects-23.cpp    |  75 +++++++++++++++++++++++++++
 20230330/objects-24.cpp    |  91 +++++++++++++++++++++++++++++++++
 20230330/objects-25.cpp    |  96 +++++++++++++++++++++++++++++++++++
 20230330/objects-26.cpp    | 101 +++++++++++++++++++++++++++++++++++++
 20230330/objects-27.cpp    | 101 +++++++++++++++++++++++++++++++++++++
 20230330/operators-10-O0.s |  93 ++++++++++++++++++++++++++++++++++
 20230330/operators-10.cpp  |  21 ++++++++
 20230330/operators-10.s    |  56 ++++++++++++++++++++
 20230330/operators-11.cpp  |  21 ++++++++
 20230330/operators-12.cpp  |  24 +++++++++
 20230330/terminal-00.txt   |   3 ++
 20230330/terminal-01.txt   |   4 ++
 20230330/terminal-02.txt   |  28 ++++++++++
 47 files changed, 2207 insertions(+), 9 deletions(-)
 create mode 100644 20230323/functions-03a.c
 create mode 100644 20230323/void-07.c
 create mode 100644 20230330/const-01.c
 create mode 100644 20230330/const-02.c
 create mode 100644 20230330/const-03.c
 create mode 100644 20230330/const-04.c
 create mode 100644 20230330/const-05.c
 create mode 100644 20230330/objects-01.c
 create mode 100644 20230330/objects-02.c
 create mode 100644 20230330/objects-03.c
 create mode 100644 20230330/objects-04.c
 create mode 100644 20230330/objects-05.c
 create mode 100644 20230330/objects-06.c
 create mode 100644 20230330/objects-07.c
 create mode 100644 20230330/objects-08.c
 create mode 100644 20230330/objects-09.c
 create mode 100644 20230330/objects-09a.c
 create mode 100644 20230330/objects-09b.c
 create mode 100644 20230330/objects-09c.c
 create mode 100644 20230330/objects-10.c
 create mode 100644 20230330/objects-11.c
 create mode 100644 20230330/objects-12.c
 create mode 100644 20230330/objects-13.c
 create mode 100644 20230330/objects-14.cpp
 create mode 100644 20230330/objects-15.cpp
 create mode 100644 20230330/objects-16.cpp
 create mode 100644 20230330/objects-17.cpp
 create mode 100644 20230330/objects-18.cpp
 create mode 100644 20230330/objects-19.cpp
 create mode 100644 20230330/objects-20.cpp
 create mode 100644 20230330/objects-21.cpp
 create mode 100644 20230330/objects-22.cpp
 create mode 100644 20230330/objects-23.cpp
 create mode 100644 20230330/objects-24.cpp
 create mode 100644 20230330/objects-25.cpp
 create mode 100644 20230330/objects-26.cpp
 create mode 100644 20230330/objects-27.cpp
 create mode 100644 20230330/operators-10-O0.s
 create mode 100644 20230330/operators-10.cpp
 create mode 100644 20230330/operators-10.s
 create mode 100644 20230330/operators-11.cpp
 create mode 100644 20230330/operators-12.cpp
 create mode 100644 20230330/terminal-00.txt
 create mode 100644 20230330/terminal-01.txt
 create mode 100644 20230330/terminal-02.txt

diff --git a/20230323/functions-03a.c b/20230323/functions-03a.c
new file mode 100644
index 0000000..387088d
--- /dev/null
+++ b/20230323/functions-03a.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+
+void print (const char *s)
+{
+  printf ("%s", s);
+}
+
+void print (int i)
+{
+  printf ("%d", i);
+}
+
+int main ()
+{
+  print ("Hello, world!\n");
+  print (42);
+  print ();
+}
diff --git a/20230323/void-07.c b/20230323/void-07.c
new file mode 100644
index 0000000..96d52e5
--- /dev/null
+++ b/20230323/void-07.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+hello ()
+{
+  printf ("Hello, world!\n");
+  return 42;
+}
+
+main ()
+{
+  hello ("Wörldt");
+  return 0;
+}
diff --git a/20230330/ad-20230330.pdf b/20230330/ad-20230330.pdf
index 88e233f08b41cba2ac18e8bd3fd7991ac2601106..1f24ee12c1ef3141cdb5b2ba10e3fc863cbc3687 100644
GIT binary patch
delta 23126
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
OX66=Ls;aL3Zd?FtoAdhs

delta 25120
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

diff --git a/20230330/ad-20230330.tex b/20230330/ad-20230330.tex
index b23d92c..dd6b6ba 100644
--- a/20230330/ad-20230330.tex
+++ b/20230330/ad-20230330.tex
@@ -442,16 +442,19 @@
       \lstinline{class}: standardmäßig \lstinline{private}
     \medskip
     \item
-      \lstinline{friend}-Funktionen und -Klassen
-    \medskip
-    \item
-      Klasse als Namensraum:\\
-      \lstinline{static}-"`Member"'-Variable\\
-      \lstinline{static}-"`Methoden"'\\
-      Deklarationen von z.\,B.\ Konstanten und Typen
+      \dots
+%      \lstinline{friend}-Funktionen und -Klassen
+%    \medskip
+%    \item
+%      Klasse als Namensraum:\\
+%      \lstinline{static}-"`Member"'-Variable\\
+%      \lstinline{static}-"`Methoden"'\\
+%      Deklarationen von z.\,B.\ Konstanten und Typen
   \end{itemize}
 \end{frame}
 
+\iffalse
+
 \addtocounter{subsection}{-1}
 \subsection{Objekte: Konstruktoren und Destruktoren}
 
@@ -491,8 +494,6 @@
   \end{itemize}
 \end{frame}
 
-\iffalse
-
 \subsection{Templates}
 
 \begin{frame}[fragile]
diff --git a/20230330/const-01.c b/20230330/const-01.c
new file mode 100644
index 0000000..de5e83f
--- /dev/null
+++ b/20230330/const-01.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+#define n 5
+
+int prime[n] = { 2, 3, 5, 7, 11 };
+
+int main (void)
+{
+  for (int i = 0; i < n; i++)
+    printf ("%d\n", prime[i]);
+  return 0;
+}
diff --git a/20230330/const-02.c b/20230330/const-02.c
new file mode 100644
index 0000000..f12c389
--- /dev/null
+++ b/20230330/const-02.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+const int n = 5;
+
+int prime[n] = { 2, 3, 5, 7, 11 };
+
+int main (void)
+{
+  for (int i = 0; i < n; i++)
+    printf ("%d\n", prime[i]);
+  return 0;
+}
diff --git a/20230330/const-03.c b/20230330/const-03.c
new file mode 100644
index 0000000..b2a7fba
--- /dev/null
+++ b/20230330/const-03.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+const int n = 5;
+
+int main (void)
+{
+  printf ("n = %d\n", n);
+  n = 6;
+  printf ("n = %d\n", n);
+  return 0;
+}
diff --git a/20230330/const-04.c b/20230330/const-04.c
new file mode 100644
index 0000000..7d454c9
--- /dev/null
+++ b/20230330/const-04.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+const int n = 5;
+
+int main (void)
+{
+  printf ("n = %d\n", n);
+  int *p = &n;
+  *p = 6;
+  printf ("n = %d\n", n);
+  return 0;
+}
diff --git a/20230330/const-05.c b/20230330/const-05.c
new file mode 100644
index 0000000..44a3b31
--- /dev/null
+++ b/20230330/const-05.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+const int n = 5;
+
+int main (void)
+{
+  printf ("n = %d\n", n);
+  const int *p = &n;
+  *p = 6;
+  printf ("n = %d\n", n);
+  return 0;
+}
diff --git a/20230330/objects-01.c b/20230330/objects-01.c
new file mode 100644
index 0000000..1a62866
--- /dev/null
+++ b/20230330/objects-01.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+int main (void)
+{
+  t_integer i = { 1, 42 };
+  t_string s = { 2, "Hello, world!" };
+
+  t_base *object[] = { &i, &s };
+
+  return 0;
+}
diff --git a/20230330/objects-02.c b/20230330/objects-02.c
new file mode 100644
index 0000000..a47cfb4
--- /dev/null
+++ b/20230330/objects-02.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+int main (void)
+{
+  t_integer i = { 1, 42 };
+  t_string s = { 2, "Hello, world!" };
+
+  t_base *object[] = { (t_base *) &i, (t_base *) &s };
+
+  return 0;
+}
diff --git a/20230330/objects-03.c b/20230330/objects-03.c
new file mode 100644
index 0000000..ff9224c
--- /dev/null
+++ b/20230330/objects-03.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+int main (void)
+{
+  t_integer i = { 1, 42 };
+  t_string s = { 2, "Hello, world!" };
+
+  t_base *object[] = { (t_base *) &i, (t_base *) &s };
+
+  for (int i = 0; i < 2; i++)
+    if (object[i]->type == 1)
+      printf ("Integer: %d\n", object[i]->content);
+    else if (object[i]->type == 2)
+      printf ("String: \"%s\"\n", object[i]->content);
+
+  return 0;
+}
diff --git a/20230330/objects-04.c b/20230330/objects-04.c
new file mode 100644
index 0000000..ef7bffe
--- /dev/null
+++ b/20230330/objects-04.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+int main (void)
+{
+  t_integer i = { 1, 42 };
+  t_string s = { 2, "Hello, world!" };
+
+  t_base *object[] = { (t_base *) &i, (t_base *) &s };
+
+  for (int i = 0; i < 2; i++)
+    if (object[i]->type == 1)
+      printf ("Integer: %d\n", (t_integer *) object[i]->content);
+    else if (object[i]->type == 2)
+      printf ("String: \"%s\"\n", (t_string *) object[i]->content);
+
+  return 0;
+}
diff --git a/20230330/objects-05.c b/20230330/objects-05.c
new file mode 100644
index 0000000..820181d
--- /dev/null
+++ b/20230330/objects-05.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+int main (void)
+{
+  t_integer i = { 1, 42 };
+  t_string s = { 2, "Hello, world!" };
+
+  t_base *object[] = { (t_base *) &i, (t_base *) &s };
+
+  for (int i = 0; i < 2; i++)
+    if (object[i]->type == 1)
+      printf ("Integer: %d\n", ((t_integer *) object[i])->content);
+    else if (object[i]->type == 2)
+      printf ("String: \"%s\"\n", ((t_string *) object[i])->content);
+
+  return 0;
+}
diff --git a/20230330/objects-06.c b/20230330/objects-06.c
new file mode 100644
index 0000000..86847c9
--- /dev/null
+++ b/20230330/objects-06.c
@@ -0,0 +1,39 @@
+#include <stdio.h>
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+void print_object (t_base *this)
+{
+  if (this->type == 1)
+    printf ("Integer: %d\n", ((t_integer *) this)->content);
+  else if (this->type == 2)
+    printf ("String: \"%s\"\n", ((t_string *) this)->content);
+}
+
+int main (void)
+{
+  t_integer i = { 1, 42 };
+  t_string s = { 2, "Hello, world!" };
+
+  t_base *object[] = { (t_base *) &i, (t_base *) &s };
+
+  for (int i = 0; i < 2; i++)
+    print_object (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-07.c b/20230330/objects-07.c
new file mode 100644
index 0000000..b9b24ad
--- /dev/null
+++ b/20230330/objects-07.c
@@ -0,0 +1,43 @@
+#include <stdio.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+void print_object (t_base *this)
+{
+  if (this->type == T_INTEGER)
+    printf ("Integer: %d\n", ((t_integer *) this)->content);
+  else if (this->type == T_STRING)
+    printf ("String: \"%s\"\n", ((t_string *) this)->content);
+}
+
+int main (void)
+{
+  t_integer i = { T_INTEGER, 42 };
+  t_string s = { T_STRING, "Hello, world!" };
+
+  t_base *object[] = { (t_base *) &i, (t_base *) &s, NULL };
+
+  for (int i = 0; object[i]; i++)
+    print_object (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-08.c b/20230330/objects-08.c
new file mode 100644
index 0000000..0c93e8f
--- /dev/null
+++ b/20230330/objects-08.c
@@ -0,0 +1,59 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+void print_object (t_base *this)
+{
+  if (this->type == T_INTEGER)
+    printf ("Integer: %d\n", ((t_integer *) this)->content);
+  else if (this->type == T_STRING)
+    printf ("String: \"%s\"\n", ((t_string *) this)->content);
+}
+
+t_integer *new_integer (int i)
+{
+  t_integer *p = malloc (sizeof (t_integer));
+  p->type = T_INTEGER;
+  p->content = i;
+  return p;
+}
+
+t_string *new_string (char *s)
+{
+  t_string *p = malloc (sizeof (t_string));
+  p->type = T_STRING;
+  p->content = s;
+  return p;
+}
+
+int main (void)
+{
+  t_base *object[] = { (t_base *) new_integer (42),
+                       (t_base *) new_string ("Hello, world!"),
+                       NULL };
+
+  for (int i = 0; object[i]; i++)
+    print_object (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-09.c b/20230330/objects-09.c
new file mode 100644
index 0000000..3355ce3
--- /dev/null
+++ b/20230330/objects-09.c
@@ -0,0 +1,69 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+} t_base;
+
+typedef struct
+{
+  int type;
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  char *content;
+} t_string;
+
+typedef union
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_object (t_object *this)
+{
+  if (this->base.type == T_INTEGER)
+    printf ("Integer: %d\n", this->integer.content);
+  else if (this->base.type == T_STRING)
+    printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.type = T_INTEGER;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_string));
+  p->string.type = T_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++)
+    print_object (object[i]);
+
+  for (int i = 0; object[i]; i++)
+    free (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-09a.c b/20230330/objects-09a.c
new file mode 100644
index 0000000..e98c5bd
--- /dev/null
+++ b/20230330/objects-09a.c
@@ -0,0 +1,60 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef struct
+{
+} t_base;
+
+typedef struct
+{
+  int content;
+} t_integer;
+
+typedef struct
+{
+  char *content;
+} t_string;
+
+typedef union
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_object (t_object *this)
+{
+//   if (this->base.type == T_INTEGER)
+//     printf ("Integer: %d\n", this->integer.content);
+//   else if (this->base.type == T_STRING)
+//     printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_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++)
+    print_object (object[i]);
+
+  for (int i = 0; object[i]; i++)
+    free (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-09b.c b/20230330/objects-09b.c
new file mode 100644
index 0000000..f1d8678
--- /dev/null
+++ b/20230330/objects-09b.c
@@ -0,0 +1,60 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct
+{
+} t_base;
+
+typedef struct
+{
+  int content;
+} t_integer;
+
+typedef struct
+{
+  char *content;
+} t_string;
+
+typedef union
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_object (t_object *this)
+{
+  printf ("Wenn dies eine Integer ist, dann lautet sie: %d.\n", this->integer.content);
+  printf ("Wenn dies ein String ist, ist er %zu Zeichen lang.\n",
+          strlen (this->string.content));
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_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++)
+    print_object (object[i]);
+
+  for (int i = 0; object[i]; i++)
+    free (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-09c.c b/20230330/objects-09c.c
new file mode 100644
index 0000000..6eeff4f
--- /dev/null
+++ b/20230330/objects-09c.c
@@ -0,0 +1,61 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct
+{
+} t_base;
+
+typedef struct
+{
+  int content;
+} t_integer;
+
+typedef struct
+{
+  char *content;
+} t_string;
+
+typedef union
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+void print_object (t_object *this)
+{
+  if (this->integer.content < 1000)  /* Heuristik --> Aua! =8-O */
+    printf ("Integer: %d\n", this->integer.content);
+  else
+    printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_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++)
+    print_object (object[i]);
+
+  for (int i = 0; object[i]; i++)
+    free (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-10.c b/20230330/objects-10.c
new file mode 100644
index 0000000..86787f3
--- /dev/null
+++ b/20230330/objects-10.c
@@ -0,0 +1,76 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define T_BASE    0
+#define T_INTEGER 1
+#define T_STRING  2
+
+typedef struct
+{
+  int type;
+  void (*print) (t_object *this);
+} t_base;
+
+typedef struct
+{
+  int type;
+  void (*print) (t_object *this);
+  int content;
+} t_integer;
+
+typedef struct
+{
+  int type;
+  void (*print) (t_object *this);
+  char *content;
+} t_string;
+
+typedef union
+{
+  t_base base;
+  t_integer integer;
+  t_string string;
+} t_object;
+
+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_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.type = T_INTEGER;
+  p->integer.print = print_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  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]);
+
+  for (int i = 0; object[i]; i++)
+    free (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-11.c b/20230330/objects-11.c
new file mode 100644
index 0000000..0a921d8
--- /dev/null
+++ b/20230330/objects-11.c
@@ -0,0 +1,78 @@
+#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)
+{
+  printf ("Integer: %d\n", this->integer.content);
+}
+
+void print_string (t_object *this)
+{
+  printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.type = T_INTEGER;
+  p->integer.print = print_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  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]);
+
+  for (int i = 0; object[i]; i++)
+    free (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-12.c b/20230330/objects-12.c
new file mode 100644
index 0000000..3b0dddd
--- /dev/null
+++ b/20230330/objects-12.c
@@ -0,0 +1,69 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+union t_object;
+
+typedef struct
+{
+  void (* print) (union t_object *this);
+} t_base;
+
+typedef struct
+{
+  void (* print) (union t_object *this);
+  int content;
+} t_integer;
+
+typedef struct
+{
+  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)
+{
+  printf ("Integer: %d\n", this->integer.content);
+}
+
+void print_string (t_object *this)
+{
+  printf ("String: \"%s\"\n", this->string.content);
+}
+
+t_object *new_integer (int i)
+{
+  t_object *p = malloc (sizeof (t_integer));
+  p->integer.print = print_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (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]);
+
+  for (int i = 0; object[i]; i++)
+    free (object[i]);
+
+  return 0;
+}
diff --git a/20230330/objects-13.c b/20230330/objects-13.c
new file mode 100644
index 0000000..81ef279
--- /dev/null
+++ b/20230330/objects-13.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->integer.vmt = &vmt_integer;
+  p->integer.content = i;
+  return p;
+}
+
+t_object *new_string (char *s)
+{
+  t_object *p = malloc (sizeof (t_string));
+  p->integer.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/20230330/objects-14.cpp b/20230330/objects-14.cpp
new file mode 100644
index 0000000..9032934
--- /dev/null
+++ b/20230330/objects-14.cpp
@@ -0,0 +1,55 @@
+#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 ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-15.cpp b/20230330/objects-15.cpp
new file mode 100644
index 0000000..ea2f2ab
--- /dev/null
+++ b/20230330/objects-15.cpp
@@ -0,0 +1,57 @@
+#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 };
+
+  object[0]->content = 137;
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-16.cpp b/20230330/objects-16.cpp
new file mode 100644
index 0000000..5f2309c
--- /dev/null
+++ b/20230330/objects-16.cpp
@@ -0,0 +1,57 @@
+#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 };
+
+  ((TInteger *) object[0])->content = 137;
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-17.cpp b/20230330/objects-17.cpp
new file mode 100644
index 0000000..c6445e2
--- /dev/null
+++ b/20230330/objects-17.cpp
@@ -0,0 +1,57 @@
+#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 };
+
+  dynamic_cast <TInteger *> (object[0])->content = 137;
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-18.cpp b/20230330/objects-18.cpp
new file mode 100644
index 0000000..1619ca2
--- /dev/null
+++ b/20230330/objects-18.cpp
@@ -0,0 +1,59 @@
+#include <stdio.h>
+
+struct TBase
+{
+  virtual void print () = 0;
+};
+
+struct TInteger: TBase
+{
+private:
+  int content;
+  virtual void print ();
+  TInteger (int i);
+};
+
+struct TString: TBase
+{
+private:
+  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 };
+
+  ((TInteger *) object[0])->content = 137;
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-19.cpp b/20230330/objects-19.cpp
new file mode 100644
index 0000000..f48227e
--- /dev/null
+++ b/20230330/objects-19.cpp
@@ -0,0 +1,62 @@
+#include <stdio.h>
+
+struct TBase
+{
+public:
+  virtual void print () = 0;
+};
+
+struct TInteger: TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  TInteger (int i);
+};
+
+struct TString: TBase
+{
+private:
+  char *content;
+public:
+  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 };
+
+  ((TInteger *) object[0])->content = 137;
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-20.cpp b/20230330/objects-20.cpp
new file mode 100644
index 0000000..6bde5cc
--- /dev/null
+++ b/20230330/objects-20.cpp
@@ -0,0 +1,62 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  virtual void print () = 0;
+};
+
+class TInteger: TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  TInteger (int i);
+};
+
+class TString: TBase
+{
+private:
+  char *content;
+public:
+  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 };
+
+  ((TInteger *) object[0])->content = 137;
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-21.cpp b/20230330/objects-21.cpp
new file mode 100644
index 0000000..ff4a5ef
--- /dev/null
+++ b/20230330/objects-21.cpp
@@ -0,0 +1,62 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  virtual void print () = 0;
+};
+
+class TInteger: public TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  TInteger (int i);
+};
+
+class TString: public TBase
+{
+private:
+  char *content;
+public:
+  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 };
+
+  ((TInteger *) object[0])->content = 137;
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-22.cpp b/20230330/objects-22.cpp
new file mode 100644
index 0000000..d375770
--- /dev/null
+++ b/20230330/objects-22.cpp
@@ -0,0 +1,75 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  virtual void print () = 0;
+};
+
+class TInteger: public TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  void set (int i);
+  TInteger (int i);
+};
+
+class TString: public TBase
+{
+private:
+  char *content;
+public:
+  virtual void print ();
+  void set (char *s);
+  TString (char *s);
+};
+
+void TInteger::print ()
+{
+  printf ("Integer: %d\n", content);
+}
+
+void TInteger::set (int i)
+{
+  content = i;
+}
+
+TInteger::TInteger (int i)
+{
+  content = i;
+}
+
+void TString::print ()
+{
+  printf ("String: \"%s\"\n", content);
+}
+
+void TString::set (char *s)
+{
+  content = s;
+}
+
+TString::TString (char *s)
+{
+  content = s;
+}
+
+int main (void)
+{
+  TBase *object[] = { new TInteger (42),
+                      new TString ("Hello, world!"),
+                      NULL };
+
+  dynamic_cast <TInteger *> (object[0])->set (137);
+  dynamic_cast <TString *> (object[1])->set ("Hallo, Welt!");
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-23.cpp b/20230330/objects-23.cpp
new file mode 100644
index 0000000..b022223
--- /dev/null
+++ b/20230330/objects-23.cpp
@@ -0,0 +1,75 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  virtual void print () = 0;
+};
+
+class TInteger: public TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  void set (int i);
+  TInteger (int i);
+};
+
+class TString: public TBase
+{
+private:
+  char *content;
+public:
+  virtual void print ();
+  void set (const char *s);
+  TString (const char *s);
+};
+
+void TInteger::print ()
+{
+  printf ("Integer: %d\n", content);
+}
+
+void TInteger::set (int i)
+{
+  content = i;
+}
+
+TInteger::TInteger (int i)
+{
+  content = i;
+}
+
+void TString::print ()
+{
+  printf ("String: \"%s\"\n", content);
+}
+
+void TString::set (const char *s)
+{
+  content = s;
+}
+
+TString::TString (const char *s)
+{
+  content = s;
+}
+
+int main (void)
+{
+  TBase *object[] = { new TInteger (42),
+                      new TString ("Hello, world!"),
+                      NULL };
+
+  dynamic_cast <TInteger *> (object[0])->set (137);
+  dynamic_cast <TString *> (object[1])->set ("Hallo, Welt!");
+
+  for (int i = 0; object[i]; i++)
+    object[i]->print ();
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-24.cpp b/20230330/objects-24.cpp
new file mode 100644
index 0000000..7df41d2
--- /dev/null
+++ b/20230330/objects-24.cpp
@@ -0,0 +1,91 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  virtual void print () = 0;
+  void pront ();
+};
+
+class TInteger: public TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (int i);
+  TInteger (int i);
+};
+
+class TString: public TBase
+{
+private:
+  const char *content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (const char *s);
+  TString (const char *s);
+};
+
+void TInteger::print ()
+{
+  printf ("Integer: %d\n", content);
+}
+
+void TInteger::pront ()
+{
+  printf ("Integer\n");
+}
+
+void TInteger::set (int i)
+{
+  content = i;
+}
+
+TInteger::TInteger (int i)
+{
+  content = i;
+}
+
+void TString::print ()
+{
+  printf ("String: \"%s\"\n", content);
+}
+
+void TString::pront ()
+{
+  printf ("IString\n");
+}
+
+void TString::set (const char *s)
+{
+  content = s;
+}
+
+TString::TString (const char *s)
+{
+  content = s;
+}
+
+int main (void)
+{
+  TBase *object[] = { new TInteger (42),
+                      new TString ("Hello, world!"),
+                      NULL };
+
+  dynamic_cast <TInteger *> (object[0])->set (137);
+  dynamic_cast <TString *> (object[1])->set ("Hallo, Welt!");
+
+  for (int i = 0; object[i]; i++)
+    {
+      object[i]->print ();
+      object[i]->pront ();
+    }
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-25.cpp b/20230330/objects-25.cpp
new file mode 100644
index 0000000..991edfa
--- /dev/null
+++ b/20230330/objects-25.cpp
@@ -0,0 +1,96 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  virtual void print () = 0;
+  void pront ();
+};
+
+class TInteger: public TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (int i);
+  TInteger (int i);
+};
+
+class TString: public TBase
+{
+private:
+  const char *content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (const char *s);
+  TString (const char *s);
+};
+
+void TBase::pront ()
+{
+  printf ("Base\n");
+}
+
+void TInteger::print ()
+{
+  printf ("Integer: %d\n", content);
+}
+
+void TInteger::pront ()
+{
+  printf ("Integer\n");
+}
+
+void TInteger::set (int i)
+{
+  content = i;
+}
+
+TInteger::TInteger (int i)
+{
+  content = i;
+}
+
+void TString::print ()
+{
+  printf ("String: \"%s\"\n", content);
+}
+
+void TString::pront ()
+{
+  printf ("IString\n");
+}
+
+void TString::set (const char *s)
+{
+  content = s;
+}
+
+TString::TString (const char *s)
+{
+  content = s;
+}
+
+int main (void)
+{
+  TBase *object[] = { new TInteger (42),
+                      new TString ("Hello, world!"),
+                      NULL };
+
+  dynamic_cast <TInteger *> (object[0])->set (137);
+  dynamic_cast <TString *> (object[1])->set ("Hallo, Welt!");
+
+  for (int i = 0; object[i]; i++)
+    {
+      object[i]->print ();
+      object[i]->pront ();
+    }
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-26.cpp b/20230330/objects-26.cpp
new file mode 100644
index 0000000..1766410
--- /dev/null
+++ b/20230330/objects-26.cpp
@@ -0,0 +1,101 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  virtual void print ();
+  void pront ();
+};
+
+class TInteger: public TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (int i);
+  TInteger (int i);
+};
+
+class TString: public TBase
+{
+private:
+  const char *content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (const char *s);
+  TString (const char *s);
+};
+
+void TBase::pront ()
+{
+  printf ("Base\n");
+}
+
+void TBase::print ()
+{
+  printf ("Base\n");
+}
+
+void TInteger::print ()
+{
+  printf ("Integer: %d\n", content);
+}
+
+void TInteger::pront ()
+{
+  printf ("Integer\n");
+}
+
+void TInteger::set (int i)
+{
+  content = i;
+}
+
+TInteger::TInteger (int i)
+{
+  content = i;
+}
+
+void TString::print ()
+{
+  printf ("String: \"%s\"\n", content);
+}
+
+void TString::pront ()
+{
+  printf ("IString\n");
+}
+
+void TString::set (const char *s)
+{
+  content = s;
+}
+
+TString::TString (const char *s)
+{
+  content = s;
+}
+
+int main (void)
+{
+  TBase *object[] = { new TInteger (42),
+                      new TString ("Hello, world!"),
+                      NULL };
+
+  dynamic_cast <TInteger *> (object[0])->set (137);
+  dynamic_cast <TString *> (object[1])->set ("Hallo, Welt!");
+
+  for (int i = 0; object[i]; i++)
+    {
+      object[i]->print ();
+      object[i]->pront ();
+    }
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/objects-27.cpp b/20230330/objects-27.cpp
new file mode 100644
index 0000000..5b2b4b4
--- /dev/null
+++ b/20230330/objects-27.cpp
@@ -0,0 +1,101 @@
+#include <stdio.h>
+
+class TBase
+{
+public:
+  void print ();
+  virtual void pront ();
+};
+
+class TInteger: public TBase
+{
+private:
+  int content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (int i);
+  TInteger (int i);
+};
+
+class TString: public TBase
+{
+private:
+  const char *content;
+public:
+  virtual void print ();
+  void pront ();
+  void set (const char *s);
+  TString (const char *s);
+};
+
+void TBase::pront ()
+{
+  printf ("Base\n");
+}
+
+void TBase::print ()
+{
+  printf ("Base\n");
+}
+
+void TInteger::print ()
+{
+  printf ("Integer: %d\n", content);
+}
+
+void TInteger::pront ()
+{
+  printf ("Integer\n");
+}
+
+void TInteger::set (int i)
+{
+  content = i;
+}
+
+TInteger::TInteger (int i)
+{
+  content = i;
+}
+
+void TString::print ()
+{
+  printf ("String: \"%s\"\n", content);
+}
+
+void TString::pront ()
+{
+  printf ("IString\n");
+}
+
+void TString::set (const char *s)
+{
+  content = s;
+}
+
+TString::TString (const char *s)
+{
+  content = s;
+}
+
+int main (void)
+{
+  TBase *object[] = { new TInteger (42),
+                      new TString ("Hello, world!"),
+                      NULL };
+
+  dynamic_cast <TInteger *> (object[0])->set (137);
+  dynamic_cast <TString *> (object[1])->set ("Hallo, Welt!");
+
+  for (int i = 0; object[i]; i++)
+    {
+      object[i]->print ();
+      object[i]->pront ();
+    }
+
+  for (int i = 0; object[i]; i++)
+    delete object[i];
+
+  return 0;
+}
diff --git a/20230330/operators-10-O0.s b/20230330/operators-10-O0.s
new file mode 100644
index 0000000..cf609b1
--- /dev/null
+++ b/20230330/operators-10-O0.s
@@ -0,0 +1,93 @@
+	.file	"operators-10.cpp"
+	.text
+	.globl	_Zpl6vectorS_
+	.type	_Zpl6vectorS_, @function
+_Zpl6vectorS_:
+.LFB0:
+	.cfi_startproc
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset 6, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register 6
+	movq	%rdi, -8(%rbp)
+	movsd	16(%rbp), %xmm1
+	movsd	40(%rbp), %xmm0
+	addsd	%xmm1, %xmm0
+	movq	-8(%rbp), %rax
+	movsd	%xmm0, (%rax)
+	movsd	24(%rbp), %xmm1
+	movsd	48(%rbp), %xmm0
+	addsd	%xmm1, %xmm0
+	movq	-8(%rbp), %rax
+	movsd	%xmm0, 8(%rax)
+	movsd	32(%rbp), %xmm1
+	movsd	56(%rbp), %xmm0
+	addsd	%xmm1, %xmm0
+	movq	-8(%rbp), %rax
+	movsd	%xmm0, 16(%rax)
+	nop
+	movq	-8(%rbp), %rax
+	popq	%rbp
+	.cfi_def_cfa 7, 8
+	ret
+	.cfi_endproc
+.LFE0:
+	.size	_Zpl6vectorS_, .-_Zpl6vectorS_
+	.section	.rodata
+.LC2:
+	.string	"(%lf,%lf,%lf)\n"
+	.text
+	.globl	main                       ; Die xor-Verknüpfung einer Zahl mit sich selbst ...
+	.type	main, @function            ;   0101
+main:                                      ; ^ 0101
+.LFB1:                                     ; ------
+	.cfi_startproc                     ;   0000           ... ist immer Null.
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset 6, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register 6                                                               ; #include <stdio.h>
+	subq	$96, %rsp                  ; Speicher für Vektoren reservieren                ; 
+	movsd	.LC0(%rip), %xmm0          ; Lade Fließkommazahl 1.0 in Register %xmm0        ; struct vector
+	movsd	%xmm0, -32(%rbp)           ; Speichere dies an Adresse -32                    ; {
+	movsd	.LC0(%rip), %xmm0          ; Lade nochmals Fließkommazahl 1.0 nach %xmm0      ;   double x, y, z;
+	movsd	%xmm0, -24(%rbp)           ; Speichere dies an Adresse -24                    ; };
+	pxor	%xmm0, %xmm0               ; Setze Register %xmm0 auf 0 (xor mit sich selbst)
+	movsd	%xmm0, -16(%rbp)           ; Speichere dies an Adresse -16                    ; vector operator + (vector u, vector v)
+	pxor	%xmm0, %xmm0               ;  `- bis hierhin: Vektor a                        ; {
+	movsd	%xmm0, -64(%rbp)                                                              ;   vector w = { u.x + v.x, u.y + v.y, u.z + v.z };
+	movsd	.LC0(%rip), %xmm0                                                             ;   return w;
+	movsd	%xmm0, -56(%rbp)                                                              ; }
+	movsd	.LC0(%rip), %xmm0                                                             ; 
+	movsd	%xmm0, -48(%rbp)           ; bis hierhin: Vektor b                            ; int main ()
+	leaq	-96(%rbp), %rax                                                               ; {
+	pushq	-48(%rbp)                                                                     ;   vector a = { 1, 1, 0 };
+	pushq	-56(%rbp)                                                                     ;   vector b = { 0, 1, 1 };
+	pushq	-64(%rbp)                                                                     ;   vector w = a + b;
+	pushq	-16(%rbp)                                                                     ;   printf ("(%lf,%lf,%lf)\n", w.x, w.y, w.z);
+	pushq	-24(%rbp)                                                                     ;   return 0;
+	pushq	-32(%rbp)                  ; speichere a und b auf dem Stack                  ; }
+	movq	%rax, %rdi                 ; lasse %rdi darauf zeigen
+	call	_Zpl6vectorS_              ; Funktionsaufruf: Operator + für Vektoren
+	addq	$48, %rsp                  ; gib Speicher für a und b wieder frei
+	movsd	-80(%rbp), %xmm2           ; hole Ergebnis vom Stack, Übergabe an printf()
+	movsd	-88(%rbp), %xmm1
+	movsd	-96(%rbp), %xmm0
+	leaq	.LC2(%rip), %rdi           ; String für printf(): "(%lf,%lf,%lf)\n"
+	movl	$3, %eax
+	call	printf@PLT
+	movl	$0, %eax                   ; 0 für "return 0"
+	leave
+	.cfi_def_cfa 7, 8
+	ret
+	.cfi_endproc
+.LFE1:
+	.size	main, .-main
+	.section	.rodata
+	.align 8
+.LC0:
+	.long	0
+	.long	1072693248
+	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
+	.section	.note.GNU-stack,"",@progbits
diff --git a/20230330/operators-10.cpp b/20230330/operators-10.cpp
new file mode 100644
index 0000000..852fd5b
--- /dev/null
+++ b/20230330/operators-10.cpp
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+struct vector
+{
+  double x, y, z;
+};
+
+vector operator + (vector u, vector v)
+{
+  vector w = { u.x + v.x, u.y + v.y, u.z + v.z };
+  return w;
+}
+
+int main ()
+{
+  vector a = { 1, 1, 0 };
+  vector b = { 0, 1, 1 };
+  vector w = a + b;
+  printf ("(%lf,%lf,%lf)\n", w.x, w.y, w.z);
+  return 0;
+}
diff --git a/20230330/operators-10.s b/20230330/operators-10.s
new file mode 100644
index 0000000..c36145e
--- /dev/null
+++ b/20230330/operators-10.s
@@ -0,0 +1,56 @@
+	.file	"operators-10.cpp"
+	.text
+	.globl	_Zpl6vectorS_
+	.type	_Zpl6vectorS_, @function
+_Zpl6vectorS_:
+.LFB12:
+	.cfi_startproc
+	movq	%rdi, %rax
+	movsd	8(%rsp), %xmm0
+	addsd	32(%rsp), %xmm0
+	movsd	%xmm0, (%rdi)
+	movsd	16(%rsp), %xmm0
+	addsd	40(%rsp), %xmm0
+	movsd	%xmm0, 8(%rdi)
+	movsd	24(%rsp), %xmm0
+	addsd	48(%rsp), %xmm0
+	movsd	%xmm0, 16(%rdi)
+	ret
+	.cfi_endproc
+.LFE12:
+	.size	_Zpl6vectorS_, .-_Zpl6vectorS_
+	.section	.rodata.str1.1,"aMS",@progbits,1
+.LC2:
+	.string	"(%lf,%lf,%lf)\n"                    ; #include <stdio.h>
+	.text                                        ; 
+	.globl	main                                 ; struct vector
+	.type	main, @function                      ; {
+main:                                                ;   double x, y, z;
+.LFB13:                                              ; };
+	.cfi_startproc                               ; 
+	subq	$8, %rsp                             ; vector operator + (vector u, vector v)
+	.cfi_def_cfa_offset 16                       ; {
+	movsd	.LC0(%rip), %xmm2                    ;   vector w = { u.x + v.x, u.y + v.y, u.z + v.z };
+	movsd	.LC1(%rip), %xmm1                    ;   return w;
+	movapd	%xmm2, %xmm0                         ; }
+	leaq	.LC2(%rip), %rdi                     ; 
+	movl	$3, %eax                             ; int main ()
+	call	printf@PLT                           ; {
+	movl	$0, %eax                             ;   vector a = { 1, 1, 0 };
+	addq	$8, %rsp                             ;   vector b = { 0, 1, 1 };
+	.cfi_def_cfa_offset 8                        ;   vector w = a + b;
+	ret                                          ;   printf ("(%lf,%lf,%lf)\n", w.x, w.y, w.z);
+	.cfi_endproc                                 ;   return 0;
+.LFE13:                                              ; }
+	.size	main, .-main
+	.section	.rodata.cst8,"aM",@progbits,8
+	.align 8
+.LC0:
+	.long	0
+	.long	1072693248
+	.align 8
+.LC1:
+	.long	0
+	.long	1073741824
+	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
+	.section	.note.GNU-stack,"",@progbits
diff --git a/20230330/operators-11.cpp b/20230330/operators-11.cpp
new file mode 100644
index 0000000..4afcb08
--- /dev/null
+++ b/20230330/operators-11.cpp
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+struct vector
+{
+  double x, y, z;
+};
+
+vector operator /= (vector u, vector v)
+{
+  vector w = { u.x + v.x, u.y + v.y, u.z + v.z };
+  return w;
+}
+
+int main ()
+{
+  vector a = { 1, 1, 0 };
+  vector b = { 0, 1, 1 };
+  vector w = a /= b;
+  printf ("(%lf,%lf,%lf)\n", w.x, w.y, w.z);
+  return 0;
+}
diff --git a/20230330/operators-12.cpp b/20230330/operators-12.cpp
new file mode 100644
index 0000000..ec104d6
--- /dev/null
+++ b/20230330/operators-12.cpp
@@ -0,0 +1,24 @@
+#include <stdio.h>
+
+struct vector
+{
+  double x, y, z;
+};
+
+void add_vectors (double *v)
+{
+  v[6] = v[0] + v[3];
+  v[7] = v[1] + v[4];
+  v[8] = v[2] + v[5];
+}
+
+int main ()
+{
+  vector a = { 1, 1, 0 };
+  vector b = { 0, 1, 1 };
+  // Anstelle von "vector w = a + b;" wird tatsächlich ein Array übergeben:
+  double w[9] = { a.x, a.y, a.z, b.x, b.y, b.z, 0, 0, 0 };
+  add_vectors (w);
+  printf ("(%lf,%lf,%lf)\n", w[6], w[7], w[8]);
+  return 0;
+}
diff --git a/20230330/terminal-00.txt b/20230330/terminal-00.txt
new file mode 100644
index 0000000..711c69e
--- /dev/null
+++ b/20230330/terminal-00.txt
@@ -0,0 +1,3 @@
+Vergleiche die (existierenden) Dateien "objects-11.c" und "objects-12.c" miteinander:
+
+cassini/home/peter/bo/2023ss/ad/20230330> diff -wu objects-1[12].c
diff --git a/20230330/terminal-01.txt b/20230330/terminal-01.txt
new file mode 100644
index 0000000..414d802
--- /dev/null
+++ b/20230330/terminal-01.txt
@@ -0,0 +1,4 @@
+Kopiere die (existierende) Datei "objects-14.cpp"
+auf das (nicht existierende) Ziel "objects-15.cpp":
+
+cassini/home/peter/bo/2023ss/ad/20230330> cp -pi objects-{14,15}.cpp
diff --git a/20230330/terminal-02.txt b/20230330/terminal-02.txt
new file mode 100644
index 0000000..dc4eb6c
--- /dev/null
+++ b/20230330/terminal-02.txt
@@ -0,0 +1,28 @@
+cassini/home/peter/bo/2023ss/ad/20230330> gcc -Wall -O objects-15.cpp
+objects-15.cpp: In function ‘int main()’:
+objects-15.cpp:45:51: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
+                       new TString ("Hello, world!"),
+                                                   ^
+objects-15.cpp:52:20: warning: deleting object of abstract class type ‘TBase’ which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
+     delete object[i];
+                    ^
+/usr/bin/ld: /tmp/ccxLEnkL.o: in function `main':
+objects-15.cpp:(.text+0x70): undefined reference to `operator new(unsigned long)'
+/usr/bin/ld: objects-15.cpp:(.text+0x92): undefined reference to `operator new(unsigned long)'
+/usr/bin/ld: objects-15.cpp:(.text+0xd4): undefined reference to `operator delete(void*, unsigned long)'
+/usr/bin/ld: /tmp/ccxLEnkL.o:(.data.rel.ro._ZTI5TBase[_ZTI5TBase]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
+/usr/bin/ld: /tmp/ccxLEnkL.o:(.data.rel.ro._ZTI8TInteger[_ZTI8TInteger]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
+/usr/bin/ld: /tmp/ccxLEnkL.o:(.data.rel.ro._ZTI7TString[_ZTI7TString]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
+collect2: error: ld returned 1 exit status
+cassini/home/peter/bo/2023ss/ad/20230330> gcc -lstdc++ -Wall -O objects-15.cpp
+objects-15.cpp: In function ‘int main()’:
+objects-15.cpp:45:51: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
+                       new TString ("Hello, world!"),
+                                                   ^
+objects-15.cpp:52:20: warning: deleting object of abstract class type ‘TBase’ which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
+     delete object[i];
+                    ^
+cassini/home/peter/bo/2023ss/ad/20230330> ./a.out
+Integer: 42
+String: "Hello, world!"
+cassini/home/peter/bo/2023ss/ad/20230330>
-- 
GitLab