<?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[User Daten oder Vererbung?]]></title><description><![CDATA[<p>Guten Tag!</p>
<p>Ich habe folgendes Problem:<br />
Ich parse ein Dateiformat A und fülle diverse A-spezifische Klassen beim parsen einer A-Datei.<br />
Beispiel:</p>
<pre><code>namespace A {

struct Road {
   int id;
   double length;
   ...
};

}
</code></pre>
<p>Nun will ich Road nach Dateiformat B konvertieren und B hat Kreuzungen (ein Konzept, das Dateiformat A nicht kennt, drum hat Road keinerlei Kreuzungsmember).<br />
Ich bräuchte jetzt also eigentlich sowas:</p>
<pre><code>namespace B {

struct Road {
   int id;
   double length;
   int junctionId;
   ...
};

}
</code></pre>
<p>Um das zu realisieren hätte ich nun 2 Ideen:</p>
<ol>
<li>B::Road erbt von A::Road. B::Road hat dann die Member, die ich für die Konvertierung nach B brauche (hier also junctionId).</li>
<li>In A::Road bereits UserData einbauen (boost::any oder UserData*). Ich könnte dann im Namespace B eine kleine struct anlegen, die junctionId enthält und jede Instanz von A::Road zeigt dann auf diese UserData.</li>
</ol>
<p>Was findet ihr besser? Oder gibts noch andere Ansätze?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330916/user-daten-oder-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 15:54:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330916.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Feb 2015 11:37:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to User Daten oder Vererbung? on Mon, 02 Feb 2015 11:37:47 GMT]]></title><description><![CDATA[<p>Guten Tag!</p>
<p>Ich habe folgendes Problem:<br />
Ich parse ein Dateiformat A und fülle diverse A-spezifische Klassen beim parsen einer A-Datei.<br />
Beispiel:</p>
<pre><code>namespace A {

struct Road {
   int id;
   double length;
   ...
};

}
</code></pre>
<p>Nun will ich Road nach Dateiformat B konvertieren und B hat Kreuzungen (ein Konzept, das Dateiformat A nicht kennt, drum hat Road keinerlei Kreuzungsmember).<br />
Ich bräuchte jetzt also eigentlich sowas:</p>
<pre><code>namespace B {

struct Road {
   int id;
   double length;
   int junctionId;
   ...
};

}
</code></pre>
<p>Um das zu realisieren hätte ich nun 2 Ideen:</p>
<ol>
<li>B::Road erbt von A::Road. B::Road hat dann die Member, die ich für die Konvertierung nach B brauche (hier also junctionId).</li>
<li>In A::Road bereits UserData einbauen (boost::any oder UserData*). Ich könnte dann im Namespace B eine kleine struct anlegen, die junctionId enthält und jede Instanz von A::Road zeigt dann auf diese UserData.</li>
</ol>
<p>Was findet ihr besser? Oder gibts noch andere Ansätze?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2440797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2440797</guid><dc:creator><![CDATA[progme2]]></dc:creator><pubDate>Mon, 02 Feb 2015 11:37:47 GMT</pubDate></item><item><title><![CDATA[Reply to User Daten oder Vererbung? on Mon, 02 Feb 2015 12:52:56 GMT]]></title><description><![CDATA[<ol start="3">
<li>Die Klassen getrennt und unverwandt lassen, und dir ne kleine Hilfsfunktion schreiben die mit Hilfe einer A::Road eine B::Road initialisiert.</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2440805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2440805</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 02 Feb 2015 12:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to User Daten oder Vererbung? on Mon, 02 Feb 2015 13:50:06 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<ol start="3">
<li>Die Klassen getrennt und unverwandt lassen, und dir ne kleine Hilfsfunktion schreiben die mit Hilfe einer A::Road eine B::Road initialisiert.</li>
</ol>
</blockquote>
<p>Aber warum sollte ich nicht von A::Road erben, wenn doch B::Road nur ein paar Member zu A::Road <strong>hinzufügt</strong>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2440809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2440809</guid><dc:creator><![CDATA[progme2]]></dc:creator><pubDate>Mon, 02 Feb 2015 13:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to User Daten oder Vererbung? on Mon, 02 Feb 2015 14:06:24 GMT]]></title><description><![CDATA[<p>Was soll das mit den namespaces?<br />
Das sieht so aus, als ob A::Road nix mit B::Road zu tun hat.<br />
Warum überhaupt 2 Klassen?<br />
Ist A::Road nicht einfach B::Road mit 0 Kreuzungen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2440811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2440811</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 02 Feb 2015 14:06:24 GMT</pubDate></item><item><title><![CDATA[Reply to User Daten oder Vererbung? on Mon, 02 Feb 2015 14:16:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">namespace B {

struct Road {
	A::Road a_part;
	int junctionId;
   ...
};

}
</code></pre>
<p>Zu offensichtlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2440813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2440813</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Mon, 02 Feb 2015 14:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to User Daten oder Vererbung? on Mon, 02 Feb 2015 14:42:19 GMT]]></title><description><![CDATA[<p>Jockelx schrieb:</p>
<blockquote>
<p>Was soll das mit den namespaces?<br />
Das sieht so aus, als ob A::Road nix mit B::Road zu tun hat.<br />
Warum überhaupt 2 Klassen?<br />
Ist A::Road nicht einfach B::Road mit 0 Kreuzungen?</p>
</blockquote>
<p>A::Road kennt das Konzept von Kreuzungen nicht mal. Ausserdem sind die Kreuzungen nur ein Beispiel. Es gibt noch mehr Unterschiede.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22298">@TyRoXx</a>: Das sieht echt am besten aus. Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2440817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2440817</guid><dc:creator><![CDATA[progme2]]></dc:creator><pubDate>Mon, 02 Feb 2015 14:42:19 GMT</pubDate></item></channel></rss>