<?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[Problem mit Vererbung von Klassentemplates]]></title><description><![CDATA[<p>Hallo erstmal,</p>
<p>ich beschäftige mich zur Zeit das erste Mal mit Templateklassen und habe ein<br />
einfaches Template erzeugt. Von diesem Template möchte ich jetzt durch Vererbung eine (oder mehrere) spezialisierte Klasse erzeugen und in dieser dann<br />
die Methoden workStarted und workFinished mit einer Implementierung füllen!</p>
<p>Das Template sieht wie folgt aus:</p>
<pre><code>template&lt;class T&gt; class WorkerListener {

	public:
		WorkerListener(void) {
		  // do nothing
		}

		virtual ~WorkerListener() {
		  // do nothing
		}

		virtual void workStarted(const T* part) = 0;
		virtual void workFinished(const T* part) = 0;
	};
</code></pre>
<p>Ich hab jetzt schon versucht eine Klasse zu erstellen, die von dem Klassentemplate erbt:</p>
<p>Die *.hpp</p>
<pre><code>class CircleWorkerListener : public WorkerListener&lt;Circle&gt;
{
  public:
    CircleWorkerListener(void);
    virtual ~CircleWorkerListener();

    virtual void workStarted(const Circle* circle);
    virtual void workFinished(const Circle* circle);
};
</code></pre>
<p>Die *.cpp</p>
<pre><code>#include &quot;CircleWorkerListener.hpp&quot;

CircleWorkerListener::CircleWorkerListener(void):
	WorkerListener&lt;Circle&gt;() {
	// do nothing
}

CircleWorkerListener::~CircleWorkerListener() {
	// do nothing
}

void CircleWorkerListener::workStarted(const Circle* circle) {
	// do nothing
}

void CircleWorkerListener::workFinished(const Circle* circle) {
	// do nothing
}
</code></pre>
<p>Instanziieren tue ich ein Objekt von der vererbten Klassen folgendermaßen:</p>
<pre><code>CircleWorkerListener* circleWorkerListener = new CircleWorkerListener();
</code></pre>
<p>Bei der Übersetzung kommt allerdings immer folgender Fehler beim Linken und ich habe absolut keine Ahnung, wo der her kommt:</p>
<pre><code>undefined reference to `CircleWorkerListener::CircleWorkerListener()'
</code></pre>
<p>Könnt ihr mir da weiterhelfen oder habt ihr eine Idee, woran der Fehler liegen könnte. Gibts da irgendetwas, was ich übersehen habe??!</p>
<p>Mit freundlichen Grüßen<br />
Soqinho</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/221401/problem-mit-vererbung-von-klassentemplates</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 05:02:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/221401.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 28 Aug 2008 14:43:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Vererbung von Klassentemplates on Thu, 28 Aug 2008 14:43:46 GMT]]></title><description><![CDATA[<p>Hallo erstmal,</p>
<p>ich beschäftige mich zur Zeit das erste Mal mit Templateklassen und habe ein<br />
einfaches Template erzeugt. Von diesem Template möchte ich jetzt durch Vererbung eine (oder mehrere) spezialisierte Klasse erzeugen und in dieser dann<br />
die Methoden workStarted und workFinished mit einer Implementierung füllen!</p>
<p>Das Template sieht wie folgt aus:</p>
<pre><code>template&lt;class T&gt; class WorkerListener {

	public:
		WorkerListener(void) {
		  // do nothing
		}

		virtual ~WorkerListener() {
		  // do nothing
		}

		virtual void workStarted(const T* part) = 0;
		virtual void workFinished(const T* part) = 0;
	};
</code></pre>
<p>Ich hab jetzt schon versucht eine Klasse zu erstellen, die von dem Klassentemplate erbt:</p>
<p>Die *.hpp</p>
<pre><code>class CircleWorkerListener : public WorkerListener&lt;Circle&gt;
{
  public:
    CircleWorkerListener(void);
    virtual ~CircleWorkerListener();

    virtual void workStarted(const Circle* circle);
    virtual void workFinished(const Circle* circle);
};
</code></pre>
<p>Die *.cpp</p>
<pre><code>#include &quot;CircleWorkerListener.hpp&quot;

CircleWorkerListener::CircleWorkerListener(void):
	WorkerListener&lt;Circle&gt;() {
	// do nothing
}

CircleWorkerListener::~CircleWorkerListener() {
	// do nothing
}

void CircleWorkerListener::workStarted(const Circle* circle) {
	// do nothing
}

void CircleWorkerListener::workFinished(const Circle* circle) {
	// do nothing
}
</code></pre>
<p>Instanziieren tue ich ein Objekt von der vererbten Klassen folgendermaßen:</p>
<pre><code>CircleWorkerListener* circleWorkerListener = new CircleWorkerListener();
</code></pre>
<p>Bei der Übersetzung kommt allerdings immer folgender Fehler beim Linken und ich habe absolut keine Ahnung, wo der her kommt:</p>
<pre><code>undefined reference to `CircleWorkerListener::CircleWorkerListener()'
</code></pre>
<p>Könnt ihr mir da weiterhelfen oder habt ihr eine Idee, woran der Fehler liegen könnte. Gibts da irgendetwas, was ich übersehen habe??!</p>
<p>Mit freundlichen Grüßen<br />
Soqinho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1573068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1573068</guid><dc:creator><![CDATA[Soqinho_]]></dc:creator><pubDate>Thu, 28 Aug 2008 14:43:46 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung von Klassentemplates on Thu, 28 Aug 2008 16:49:33 GMT]]></title><description><![CDATA[<p>Ich sehe da kein Problem (abgesehen vom fehlenden delete <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>Was benutzt du für einen Compiler? - Ich würde mal raten devcpp?<br />
Wenn ja, nimm einen anderen, wie z.B Visual C++ Express Edition, oder Code::Blocks.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1573159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1573159</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 28 Aug 2008 16:49:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung von Klassentemplates on Thu, 28 Aug 2008 16:56:22 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Was benutzt du für einen Compiler? - Ich würde mal raten devcpp?</p>
</blockquote>
<p>Dir ist doch wohl hoffentlich klar, das diese keine Compiler sind, sonder nun Entwicklungsumgebungen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1573162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1573162</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 28 Aug 2008 16:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung von Klassentemplates on Thu, 28 Aug 2008 17:32:59 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Was benutzt du für einen Compiler? - Ich würde mal raten devcpp?</p>
</blockquote>
<p>Dir ist doch wohl hoffentlich klar, das diese keine Compiler sind, sonder nun Entwicklungsumgebungen <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>
</blockquote>
<p>Ja. Aber für einen Neuling wird die auseinandernahem wohl eher verwirren. <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>Aber auch die IDE ist nicht auf dem neusten Stand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1573179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1573179</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 28 Aug 2008 17:32:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung von Klassentemplates on Thu, 28 Aug 2008 17:36:39 GMT]]></title><description><![CDATA[<p>hast du die Objektdateien auch alle mitgelinkt?</p>
<p>/edit:</p>
<blockquote>
<p>Ja. Aber für einen Neuling wird die auseinandernahem wohl eher verwirren. <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>
</blockquote>
<p>Das sorgt dann vielleicht einmal für ne Frage &quot;was ist ne IDE?&quot; und dann ist die Sache geklärt. Wenn du Neulingen stattdessen IDEs als Compiler verkaufst ist die viel größere Verwirrung vorprogrammiert, wenn sich eine Unterscheidung einmal nichtmehr vermeiden lässt &quot;aber ich dachte devcpp IST ein Compiler. HÄ???&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1573180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1573180</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 28 Aug 2008 17:36:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung von Klassentemplates on Fri, 29 Aug 2008 08:10:27 GMT]]></title><description><![CDATA[<blockquote>
<p>hast du die Objektdateien auch alle mitgelinkt?</p>
</blockquote>
<p>Danke, der Kommentar hat mich darauf gebracht, dass ich ja mein Makefile noch anpassen muss. Daran lags <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>Ach ja, ich weiß zwar net, was devcpp ist, aber ich benutze hier gcc <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="🙂"
    /></p>
<p>MfG<br />
Soqinho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1573395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1573395</guid><dc:creator><![CDATA[Soqinho]]></dc:creator><pubDate>Fri, 29 Aug 2008 08:10:27 GMT</pubDate></item></channel></rss>