<?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[Templates mit VC++ 6.0]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich schreibe mal in dieses Topic, weil ich vermute, dass ich an Visual Studio 6.0 scheitere.<br />
Ich möchte einen <strong>generischen Buffer</strong> mit Hilfe von <strong>Templates</strong> realisieren, mein Projekt hat 3 Dateien: Headerdatei, dazugehörige Cpp-Datei, und eine Cpp-Datei zum Testen.<br />
Hier die wichtigsten Auszüge:</p>
<p><strong>dynamicbuffer.h</strong></p>
<pre><code class="language-cpp">#ifndef DYNAMIC_BUFFER_H
#define DYNAMIC_BUFFER_H

#include &lt;stdio.h&gt;

template&lt;class T&gt;
class DynamicBuffer
{
	public:
		DynamicBuffer ();
		void enqueue (T x);
		void dequeue (T &amp;x);
		bool nonEmpty ();
	private:
		struct ListElem;
		ListElem* head;
		ListElem* tail;
};

#endif
</code></pre>
<p><strong>dynamicbuffer.cpp</strong></p>
<pre><code class="language-cpp">#include &quot;dynamicbuffer.h&quot;

template&lt;class T&gt;
struct DynamicBuffer&lt;T&gt;::ListElem
{
	T value;
	ListElem *next;
};

// ...

template&lt;class T&gt;
void DynamicBuffer&lt;T&gt;::enqueue (T x)
{
	ListElem *in;

	in = new ListElem;    // Zeile 25
	in-&gt;value = x;
	in-&gt;next = NULL;

	// ...

}

// ...
</code></pre>
<p><strong>dynamicbuffertest.cpp</strong></p>
<pre><code class="language-cpp">#include &quot;dynamicbuffer.cpp&quot;

#include &lt;iostream&gt;
using namespace std;

int main ()
{
	DynamicBuffer&lt;int&gt; intBuffer;

	intBuffer.enqueue (10);
	return 0;
}
</code></pre>
<p>Das Instantiieren des Buffers verläuft noch ohne Fehler, aber sobald ich enqueue aufrufe, bekomme ich Fehler dieser Art:</p>
<pre><code>...\dynamicbuffer.cpp(25) : error C2512: 'ListElem' : Kein geeigneter Standardkonstruktor verfuegbar
...\dynamicbuffer.cpp(26) : error C2027: Verwendung des undefinierten Typs &quot;ListElem&quot;
</code></pre>
<p>Er scheint also irgendwie <em>ListElem</em> nicht zu kennen bzw. erzeugen zu können.<br />
Den Code hab ich mehrmals kontrolliert und mit ähnlichem verglichen, deswegen denke ich, dass ich evtl. compilerspezifische Fehler gemacht habe.</p>
<p>Für jegliche Hilfe bin ich dankbar, weil es echt schwierig ist, dieses Problem mit Google &amp; Co. zu beheben.</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187055/templates-mit-vc-6-0</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 16:20:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187055.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Jul 2007 10:53:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Wed, 16 May 2012 20:19:07 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich schreibe mal in dieses Topic, weil ich vermute, dass ich an Visual Studio 6.0 scheitere.<br />
Ich möchte einen <strong>generischen Buffer</strong> mit Hilfe von <strong>Templates</strong> realisieren, mein Projekt hat 3 Dateien: Headerdatei, dazugehörige Cpp-Datei, und eine Cpp-Datei zum Testen.<br />
Hier die wichtigsten Auszüge:</p>
<p><strong>dynamicbuffer.h</strong></p>
<pre><code class="language-cpp">#ifndef DYNAMIC_BUFFER_H
#define DYNAMIC_BUFFER_H

#include &lt;stdio.h&gt;

template&lt;class T&gt;
class DynamicBuffer
{
	public:
		DynamicBuffer ();
		void enqueue (T x);
		void dequeue (T &amp;x);
		bool nonEmpty ();
	private:
		struct ListElem;
		ListElem* head;
		ListElem* tail;
};

#endif
</code></pre>
<p><strong>dynamicbuffer.cpp</strong></p>
<pre><code class="language-cpp">#include &quot;dynamicbuffer.h&quot;

template&lt;class T&gt;
struct DynamicBuffer&lt;T&gt;::ListElem
{
	T value;
	ListElem *next;
};

// ...

template&lt;class T&gt;
void DynamicBuffer&lt;T&gt;::enqueue (T x)
{
	ListElem *in;

	in = new ListElem;    // Zeile 25
	in-&gt;value = x;
	in-&gt;next = NULL;

	// ...

}

// ...
</code></pre>
<p><strong>dynamicbuffertest.cpp</strong></p>
<pre><code class="language-cpp">#include &quot;dynamicbuffer.cpp&quot;

#include &lt;iostream&gt;
using namespace std;

int main ()
{
	DynamicBuffer&lt;int&gt; intBuffer;

	intBuffer.enqueue (10);
	return 0;
}
</code></pre>
<p>Das Instantiieren des Buffers verläuft noch ohne Fehler, aber sobald ich enqueue aufrufe, bekomme ich Fehler dieser Art:</p>
<pre><code>...\dynamicbuffer.cpp(25) : error C2512: 'ListElem' : Kein geeigneter Standardkonstruktor verfuegbar
...\dynamicbuffer.cpp(26) : error C2027: Verwendung des undefinierten Typs &quot;ListElem&quot;
</code></pre>
<p>Er scheint also irgendwie <em>ListElem</em> nicht zu kennen bzw. erzeugen zu können.<br />
Den Code hab ich mehrmals kontrolliert und mit ähnlichem verglichen, deswegen denke ich, dass ich evtl. compilerspezifische Fehler gemacht habe.</p>
<p>Für jegliche Hilfe bin ich dankbar, weil es echt schwierig ist, dieses Problem mit Google &amp; Co. zu beheben.</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325736</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 16 May 2012 20:19:07 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Sun, 15 Jul 2007 13:23:40 GMT]]></title><description><![CDATA[<p>ListElem ist halt nciht definiert, ganz einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325849</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Sun, 15 Jul 2007 13:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Sun, 15 Jul 2007 18:21:53 GMT]]></title><description><![CDATA[<p>Ist das</p>
<pre><code class="language-cpp">template&lt;class T&gt;
struct DynamicBuffer&lt;T&gt;::ListElem
{
    T value;
    ListElem *next;
};
</code></pre>
<p>(s. <em>dynamicbuffer.cpp</em>) denn keine Definition? Wenn nicht, wie muss es dann richtig aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326042</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 15 Jul 2007 18:21:53 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Mon, 16 Jul 2007 06:48:07 GMT]]></title><description><![CDATA[<p>sorry, das habe ich wohl übersehen.<br />
Ich erinner mich, dass es mit dem VC++6 Probleme mit Templates gab: Man konnte seine Template-Klassen nicht in Header- und Source-Datei auftrennen. Möglicherweise spielt das hier mit rein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326267</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Mon, 16 Jul 2007 06:48:07 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Mon, 16 Jul 2007 06:52:00 GMT]]></title><description><![CDATA[<p>Tlyman schrieb:</p>
<blockquote>
<p>Ist das</p>
<pre><code class="language-cpp">template&lt;class T&gt;
struct DynamicBuffer&lt;T&gt;::ListElem
{
    T value;
    ListElem *next;
};
</code></pre>
<p>(s. <em>dynamicbuffer.cpp</em>) denn keine Definition? Wenn nicht, wie muss es dann richtig aussehen?</p>
</blockquote>
<p>Doch das ist eine!<br />
Das Problem ist nur, dass VC6 einfach nicht zuverlässig mit templates arbeitet.</p>
<p>Setze die Deklaration mal in die temnplate Klasse!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326271</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 16 Jul 2007 06:52:00 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Mon, 16 Jul 2007 16:24:59 GMT]]></title><description><![CDATA[<p>Mit der Definition direkt in der Headerdatei klappt jetzt alles, vielen Dank. Einerseits gut zu wissen, dass es doch &quot;nur&quot; an VC++ lag, andererseits werde ich mir vielleicht doch mal einen besseren Compiler raussuchen müssen, wenn ich das sauber trennen möchte.</p>
<p>Viele Grüße,</p>
<p>Tlyman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326709</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Jul 2007 16:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Mon, 16 Jul 2007 16:26:16 GMT]]></title><description><![CDATA[<p>Einfach auf das aktuelle Visual Studio umsteigen. VC++6.0 ist immerhin inzwischen fast ein Jahrzehnt alt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326711</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Mon, 16 Jul 2007 16:26:16 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Mon, 16 Jul 2007 16:45:48 GMT]]></title><description><![CDATA[<p>Hat es einen bestimmten Grund dass du nicht std::deque oder std::list verwendest?<br />
Ich meine wenn du eine eigene DynamicBuffer Klasse haben willst mit eigenem Interface, dann kannst du ja immernoch zur Implementierung von DynamicBuffer std::deque oder std::list verwenden ... nicht?<br />
(Oder std::vector als Ringbuffer)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326720</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 16 Jul 2007 16:45:48 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Mon, 16 Jul 2007 17:02:48 GMT]]></title><description><![CDATA[<p>Hehe, leider ist mein Laptop auch fast ein Jahrzehnt alt und Visual Studio 2005 doch ein großer Klotz ressourcenfressender Software <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>Der Grund für die Neuerfindung des Rads war ganz einfach: Es war so in der Aufgabe vorgegeben und der Assistent hat sich nicht dazu geäußert. Da in einigen Tagen Klausur ist, wollte ich dann doch zeitnah wissen, ob ich zu blöd bin oder der Compiler <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="🙂"
    /><br />
Da könnt ihr mal sehen, wie dankbar ich euch bin <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/1326728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326728</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Jul 2007 17:02:48 GMT</pubDate></item><item><title><![CDATA[Reply to Templates mit VC++ 6.0 on Sun, 22 Jul 2007 09:51:13 GMT]]></title><description><![CDATA[<p>Kenne ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330125</guid><dc:creator><![CDATA[Der_kenner]]></dc:creator><pubDate>Sun, 22 Jul 2007 09:51:13 GMT</pubDate></item></channel></rss>