<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Bestehendes Programm mit verschachtelten Klassen. Aber wieso?]]></title><description><![CDATA[<p>Moin moin,</p>
<p>ich hab mal wieder ne Frage. Dieses mal eine grundlegendere Verständnisfrage. Damit ich endlich mal ein wenig &quot;Wissen&quot; in C/C++ ansammeln kann. Folgendes Programm ist gegeben:</p>
<p>Hauptschleife:<br />
- erstellt ein Objekt der Klasse_1<br />
- benutzt die darin enthaltenen Funktionen mit<br />
- - Klasse_1.Funktion_1</p>
<p>Klasse_1:<br />
- enthält div Funktionen (zB Funktion_1)<br />
- In denen ein Objekt der Klasse_2 erstellt wird<br />
- benutzt die darin enthaltenen Funktionen mit<br />
- - Klasse_2.Funktion_2</p>
<p>Klasse_2:<br />
- läd eine DLL<br />
- stellt Prototypen der enthaltenen Funktionen zur Verfügung<br />
- - also zB Funktion_2</p>
<p>Also greife ich von der Hauptschleife auf eine Funktion in der 1. Klasse zu, welche auf Funktionen in der 2. Klasse zugreift, welche letztlich aus einer DLL kommen ....</p>
<p>Gibt es da einen Sinnvollen Grund für, warum man nicht einfach im Hauptprogramm die DLL laden sollte und dort direkt drauf zugreifen? Wäre das nicht übersichtlicher? Gut, man hätte dann ein langes Programm ... Übersichtlichkeit ist da wohl Geschmackssache. Aber wie gesagt: Gibt es einen wirklichen Grund es so zu verschachteln?</p>
<p>Lg, Lukas</p>
<p>PS: nein, derjenigen, der das Programm geschrieben hat, kann ich nicht fragen, wieso er es ausgerechnet so gemacht hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338452/bestehendes-programm-mit-verschachtelten-klassen-aber-wieso</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 11:59:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338452.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Jun 2016 15:43:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bestehendes Programm mit verschachtelten Klassen. Aber wieso? on Thu, 16 Jun 2016 15:43:25 GMT]]></title><description><![CDATA[<p>Moin moin,</p>
<p>ich hab mal wieder ne Frage. Dieses mal eine grundlegendere Verständnisfrage. Damit ich endlich mal ein wenig &quot;Wissen&quot; in C/C++ ansammeln kann. Folgendes Programm ist gegeben:</p>
<p>Hauptschleife:<br />
- erstellt ein Objekt der Klasse_1<br />
- benutzt die darin enthaltenen Funktionen mit<br />
- - Klasse_1.Funktion_1</p>
<p>Klasse_1:<br />
- enthält div Funktionen (zB Funktion_1)<br />
- In denen ein Objekt der Klasse_2 erstellt wird<br />
- benutzt die darin enthaltenen Funktionen mit<br />
- - Klasse_2.Funktion_2</p>
<p>Klasse_2:<br />
- läd eine DLL<br />
- stellt Prototypen der enthaltenen Funktionen zur Verfügung<br />
- - also zB Funktion_2</p>
<p>Also greife ich von der Hauptschleife auf eine Funktion in der 1. Klasse zu, welche auf Funktionen in der 2. Klasse zugreift, welche letztlich aus einer DLL kommen ....</p>
<p>Gibt es da einen Sinnvollen Grund für, warum man nicht einfach im Hauptprogramm die DLL laden sollte und dort direkt drauf zugreifen? Wäre das nicht übersichtlicher? Gut, man hätte dann ein langes Programm ... Übersichtlichkeit ist da wohl Geschmackssache. Aber wie gesagt: Gibt es einen wirklichen Grund es so zu verschachteln?</p>
<p>Lg, Lukas</p>
<p>PS: nein, derjenigen, der das Programm geschrieben hat, kann ich nicht fragen, wieso er es ausgerechnet so gemacht hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2499120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2499120</guid><dc:creator><![CDATA[LD]]></dc:creator><pubDate>Thu, 16 Jun 2016 15:43:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bestehendes Programm mit verschachtelten Klassen. Aber wieso? on Thu, 16 Jun 2016 16:14:36 GMT]]></title><description><![CDATA[<p>Was ist für dich ein &quot;wirklicher&quot; Grund?<br />
Es gibt viele Gründe Sachen beim Programmieren zu trennen/kapseln. Die sind aber meist keine &quot;harten&quot; Gründe im Sinn von &quot;geht nicht anders&quot;, sondern &quot;best practices&quot; deren Einhaltung halt von vielen Programmierern als Sinnvoll erachtet wird. Hat sich halt herausgestellt dass es gewisse Dinge parktisch sind. Zu besser verständlichem und/oder besser wartbarem Code führen.</p>
<p>Ist ähnlich wie die Frage ob es einen &quot;wirklichen&quot; Grund dafür gibt dass Leute üblicherweise nen Kleiderschrank haben. Man könnte die Kleider ja auch nach dem Waschen einfach in das nächstbeste Möbel stopfen wo gerade Platz ist.</p>
<p>Und auf deinen konkreten Fall kann ich nicht viel sagen, ausser dass das was du beschreibst - in dieser äusserst vagen/abstrakten Form - nicht ganz verkehrt klingt. Um konkreter zu werden müsste ich den Code sehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2499122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2499122</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 16 Jun 2016 16:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to Bestehendes Programm mit verschachtelten Klassen. Aber wieso? on Thu, 16 Jun 2016 16:26:13 GMT]]></title><description><![CDATA[<p>So allgemein wie das von dir beschrieben ist, kann man nicht wirklich viel zur tatsächlichen Motivation dahinter sagen, ein naheliegender Grund könnte jedoch Abstraktion sein:</p>
<p>Möglicherweise gibt es verschiedene DLLs/Bibliotheken die <code>Klasse_1</code> nutzen kann, um ihre Funktionalität zur Verfügung zu stellen.<br />
<code>Klasse_2</code> könnte dabei eventuell das konkrete C-Interface der Bibliothek kapseln und <code>Klasse_1</code> ein <strong>allgemeines</strong> Interface zum Zugriff auf Bibliotheken dieser Art darstellen.</p>
<p>Beispiel: Datenbank-Interface</p>
<p><code>Klasse_1</code> stellt allgemeine Funktion zur verfügung, z.B. <code>erstelle_datensatz()</code> .<br />
Geladene DLL kann eine von mehreren Datenbank-APIs sein, z.B. für SQLite, Oracle, PostgreSQL, etc.<br />
<code>Klasse_2</code> kapselt dabei datenbankspezifische API ( <code>pg_connect()</code> , <code>oci_connect()</code> , etc.)</p>
<p>Vorteil: Im Programm selbst verwendet man nur datenbank-agnostischen Code, der mit jeder Datenbank funktionieren kann.<br />
Datenbankspezifische Funktionsaufrufe wurden mit den zusätzlichen Klassen wegabstrahiert.</p>
<p>Wie gesagt, das ist nur ein möglicher Grund (also reine Spekulation).<br />
Vielleicht gehst du etwas mehr ins Detail (konkreter Code?), dann kann man eventuell mehr sagen.</p>
<p>Gruss,<br />
Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2499124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2499124</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Thu, 16 Jun 2016 16:26:13 GMT</pubDate></item></channel></rss>