<?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[Vererbung - virtual function]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab folgendes problem:<br />
ich habe einen vector mit meiner hauptklasse, in den objekte von deren subklassen gespeichert werden, nun will ich den vector mit einer print funktion ausgeben lassen, wobei auf die print funktion der subklassen zurückgegriffen werden soll, aber irgendwie klappt das nicht, vielleicht, kann mir ja jemand helfen das problem zu lösen...<br />
der quelltext ist ziemlich lang deshalb hab ich die files gepackt und hochgeladen, hier der link:<br />
<a href="http://www.4shared.com/file/251270222/34d0279d/Distribution.html" rel="nofollow">http://www.4shared.com/file/251270222/34d0279d/Distribution.html</a></p>
<p>am besten am anfang in der main.cpp nach unten zur print funktion hinscrollen<br />
dadadurch sollte das problem deutlicher werden.</p>
<p>ach, c builder hat mir folgende fehlermeldung ausgegeben:</p>
<blockquote>
<p>[ILINK32 Fehler] Error: Nicht auflösbares externes 'Distribution::print()' referenziert von C:\...\RAD STUDIO\PROJEKTE\DEBUG\CDISTRIBUTION.OBJ<br />
[ILINK32 Fehler] Error: Linken kann nicht ausgeführt werden</p>
</blockquote>
<p>danke schonmal für die hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263837/vererbung-virtual-function</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 13:44:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263837.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Mar 2010 14:48:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 14:48:21 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab folgendes problem:<br />
ich habe einen vector mit meiner hauptklasse, in den objekte von deren subklassen gespeichert werden, nun will ich den vector mit einer print funktion ausgeben lassen, wobei auf die print funktion der subklassen zurückgegriffen werden soll, aber irgendwie klappt das nicht, vielleicht, kann mir ja jemand helfen das problem zu lösen...<br />
der quelltext ist ziemlich lang deshalb hab ich die files gepackt und hochgeladen, hier der link:<br />
<a href="http://www.4shared.com/file/251270222/34d0279d/Distribution.html" rel="nofollow">http://www.4shared.com/file/251270222/34d0279d/Distribution.html</a></p>
<p>am besten am anfang in der main.cpp nach unten zur print funktion hinscrollen<br />
dadadurch sollte das problem deutlicher werden.</p>
<p>ach, c builder hat mir folgende fehlermeldung ausgegeben:</p>
<blockquote>
<p>[ILINK32 Fehler] Error: Nicht auflösbares externes 'Distribution::print()' referenziert von C:\...\RAD STUDIO\PROJEKTE\DEBUG\CDISTRIBUTION.OBJ<br />
[ILINK32 Fehler] Error: Linken kann nicht ausgeführt werden</p>
</blockquote>
<p>danke schonmal für die hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874595</guid><dc:creator><![CDATA[Nickolaus]]></dc:creator><pubDate>Sun, 28 Mar 2010 14:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 14:53:22 GMT]]></title><description><![CDATA[<p>Dein Linker beschwert sich, dass er ein symbol nicht finden kann.<br />
Entweder hast du Distribution::print() nicht implementiert (oder falsch implementiert), oder die Datei die die Implementierung enthält, nicht hinzugelinkt.</p>
<p>Und den Download tu ich mir nicht an. Auf so adverseuchten Seiten ewig zu warten, nö, nur um dir deinen Source zu debuggen - da hab ich besseres zu tun <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Poste doch einfach hier die Klassendefinition von Distribution und wie du Distribution::print implementierst, wenn du absolut nicht weiterkommst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874599</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 28 Mar 2010 14:53:22 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 15:08:00 GMT]]></title><description><![CDATA[<p>Distribution.h:</p>
<pre><code class="language-cpp">#ifndef DESTRIBUTION.h
#define DESTRIBUTION.h
#include &lt;string&gt;

using std::string;

class Distribution
{
	private:
		string title, type;
		double price;
	public:
		void setTitle(string title);
		void setPrice(double price);
		void setType(string type);
		string getTitle();
		double getPrice();
		string getType();
		virtual void print();
		Distribution(string type = &quot;none&quot;);
};

#endif
</code></pre>
<p>print ist leer in der implementation.. und nur in den subklassen richtig mit inhalt implementiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874606</guid><dc:creator><![CDATA[Nickolaus]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 15:11:52 GMT]]></title><description><![CDATA[<p>Nickolaus schrieb:</p>
<blockquote>
<p>print ist leer in der implementation.. und nur in den subklassen richtig mit inhalt implementiert</p>
</blockquote>
<p>Was heißt leer?<br />
Für sowas gibt es eigentlich pure virtual - wenn die Subklassen das implementieren müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874609</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:11:52 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 15:12:28 GMT]]></title><description><![CDATA[<p>Nickolaus schrieb:</p>
<blockquote>
<p>print ist leer in der implementation.. und nur in den subklassen richtig mit inhalt implementiert</p>
</blockquote>
<p>Dann musst du aber die Deklaration so schreiben:</p>
<pre><code class="language-cpp">virtual void print() = 0;
</code></pre>
<p>Sonst wird erwartet, dass eine Implementierung vorliegt.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874610</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 15:16:55 GMT]]></title><description><![CDATA[<p>Wenn Du aus Distribution eine abstrakte Klasse machen willst (das willst Du, denn Du willst kein Distribution::print vorgeben) musst Du sie auch &quot;pur virtuell&quot; machen. Das geht mit der &quot;=0;&quot;-Sytnax. Zeig auch ruhig mal den Rest vom Code ... zB was für ein Typ der vector hat.</p>
<p>Du weißst, dass die Kontainer aus der Standardbibliothek Kopien speichern und was Slicing ist, ja? (rethorische Frage, soll zum Nachforschen anregen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874611</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:16:55 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 15:21:28 GMT]]></title><description><![CDATA[<p>ja, danke ok, hab ich verstanden,..<br />
gibt es denn ne möglichkeit, wie ich die verschiedenen objecte der subklassen in einen vector oder änliches zu packen,<br />
vector&lt;Distribution&gt; geht ja nun nicht mehr, da die klasse jetzt abstrakt ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874613</guid><dc:creator><![CDATA[Nickolaus]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 15:26:14 GMT]]></title><description><![CDATA[<p>Nickolaus schrieb:</p>
<blockquote>
<p>ja, danke ok, hab ich verstanden,..<br />
gibt es denn ne möglichkeit, wie ich die verschiedenen objecte der subklassen in einen vector oder änliches zu packen,<br />
vector&lt;Distribution&gt; geht ja nun nicht mehr, da die klasse jetzt abstrakt ist</p>
</blockquote>
<p>Basisklassenpointer:<br />
vector&lt;Distribution *&gt;</p>
<p>// edit:<br />
Dafür kannst du dir auch mal die <a href="http://www.boost.org/doc/libs/1_42_0/libs/ptr_container/doc/ptr_container.html" rel="nofollow">boost.ptr_container</a> anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874614</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:26:14 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung - virtual function on Sun, 28 Mar 2010 15:58:03 GMT]]></title><description><![CDATA[<p>vielen dank für die hilfe, werd mir den genauer anschauen sobald ich dafür zeit hab,... denke ich kann meine probleme nun wohl lösen, muss die sache zwar jetzt wieder nen bisschen umschreiben, aber wird schon schiefgehen...</p>
<p>wie gesagt vielen dank nochmal für die schnelle unterstützung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874636</guid><dc:creator><![CDATA[Nickolaus]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:58:03 GMT</pubDate></item></channel></rss>