<?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[stl queue kapseln]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte zur Übung die Klasse queue aus der stl kapseln.<br />
Meine klasse queue_s soll also genau das selbe machen wie die Klasse queue.</p>
<p>Mein Code sieht bisher so aus:</p>
<pre><code class="language-cpp">#include &lt;queue&gt;

template &lt;typename T&gt;
class queue_s
{
public:
	queue_s(T t):t1(t){}
	bool empty()
	{
		return t1_.empty();
	}
	unsigned int size() 
	{
		return t1.size();
	}
	T front() 
	{
		return t1.front();
	}
	T back() {
		return t1.back();
	}
	void push(T t) 
	{
		t1.push(t);
	}
	void pop() 
	{
		t1.pop();
	}

private:
	queue&lt;T&gt; t1;
};
</code></pre>
<p>Leider gibt es einige Fehler, die sich alle auf die private Membervariable beziehen:<br />
error C2143: Syntaxfehler: Es fehlt ';' vor '&lt;'<br />
error C4430: Fehlender Typspezifizierer - int wird angenommen.<br />
error C2238: Unerwartete(s) Token vor ';'</p>
<p>Was muß ich ändern damit es funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282006/stl-queue-kapseln</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 10:34:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282006.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Feb 2011 20:00:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:00:41 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte zur Übung die Klasse queue aus der stl kapseln.<br />
Meine klasse queue_s soll also genau das selbe machen wie die Klasse queue.</p>
<p>Mein Code sieht bisher so aus:</p>
<pre><code class="language-cpp">#include &lt;queue&gt;

template &lt;typename T&gt;
class queue_s
{
public:
	queue_s(T t):t1(t){}
	bool empty()
	{
		return t1_.empty();
	}
	unsigned int size() 
	{
		return t1.size();
	}
	T front() 
	{
		return t1.front();
	}
	T back() {
		return t1.back();
	}
	void push(T t) 
	{
		t1.push(t);
	}
	void pop() 
	{
		t1.pop();
	}

private:
	queue&lt;T&gt; t1;
};
</code></pre>
<p>Leider gibt es einige Fehler, die sich alle auf die private Membervariable beziehen:<br />
error C2143: Syntaxfehler: Es fehlt ';' vor '&lt;'<br />
error C4430: Fehlender Typspezifizierer - int wird angenommen.<br />
error C2238: Unerwartete(s) Token vor ';'</p>
<p>Was muß ich ändern damit es funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019861</guid><dc:creator><![CDATA[MisterX]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:00:41 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:06:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::queue&lt;T&gt; t1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2019863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019863</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:06:26 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:09:59 GMT]]></title><description><![CDATA[<p>Du arbeitest hier öfters mit Kopien statt, wie das Original, mit Referenzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019864</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:24:25 GMT]]></title><description><![CDATA[<p>Schau dir nochmal Zeile 10 an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019869</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:32:15 GMT]]></title><description><![CDATA[<p>Hi, dank eurer Hilfe habe ich schon eine lauffähige Version hinbekommen:</p>
<pre><code class="language-cpp">#include &lt;queue&gt;

template &lt;class T&gt; class queue_s
{
public:
	queue_s(T t):t1(t){}
	queue_s(){}

	bool empty()
	{
		return t1.empty();
	}
	unsigned int size() 
	{
		return t1.size();
	}
	T front() 
	{
		return t1.front();
	}
	T back() {
		return t1.back();
	}
	void push(T t) 
	{
		t1.push(t);
	}
	void pop() 
	{
		t1.pop();
	}

private:
	std::queue&lt;T&gt; t1;
};
</code></pre>
<p>Danke für den Hinweis zu meinem Flüchtigkeitsfehler in Zeile 10</p>
<p>Wenn ich nun versuche den Hinweis von Ethon umzusetzen:</p>
<pre><code class="language-cpp">void push(T &amp;t) 
	{
		t1.push(t);
	}
</code></pre>
<p>bekomme ich bei der Verwendung meiner Klasse</p>
<pre><code class="language-cpp">queue_s&lt;int&gt; q;
 q.push(7);
</code></pre>
<p>error C2664: 'queue_s&lt;T&gt;::push': Konvertierung des Parameters 1 von 'int' in 'int &amp;' nicht möglich</p>
<p>Wie kann ich bei der Verwendung von Templates Referenzen verwenden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019872</guid><dc:creator><![CDATA[MisterX]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:32:15 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:46:24 GMT]]></title><description><![CDATA[<p>Referenzen auf Literale müssen const sein. Damit mein ich nicht die Referenz ansich (ist ohnehin immer const) sondern das referenzierte Objekt.</p>
<pre><code class="language-cpp">void push(const T &amp;t)
    {
        t1.push(t);
    }
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26744">@Ethon</a>: erster <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019880</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:46:24 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:44:32 GMT]]></title><description><![CDATA[<p>Das machst du mit einer konstanten Referenz <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 />
Ansonsten könntest du ja den Wert 7 ändern, der ja nicht direkt als Wert existiert. Kein Wunder dass der Compiler das verbietet.</p>
<pre><code class="language-cpp">void push(T const&amp; t)
{
  t1.push(t);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2019881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019881</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:44:32 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 20:53:10 GMT]]></title><description><![CDATA[<p>die getter kannst du auch const machen.</p>
<pre><code class="language-cpp">bool empty() const
    {
        return t1.empty();
    }

    unsigned int size() const
    {
        return t1.size();
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2019883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019883</guid><dc:creator><![CDATA[öä#öä#]]></dc:creator><pubDate>Fri, 11 Feb 2011 20:53:10 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 21:09:51 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>für die get-Methoden habe ich zwei verschiedene Möglichkeiten gefunden die sich aber gegenseitig auszuschließen scheinen:</p>
<p>Als referenz Rückgabe:</p>
<pre><code class="language-cpp">T &amp;front()
	{
		return t1.front();
	}
</code></pre>
<p>als Const</p>
<pre><code class="language-cpp">T front() const
	{
		return t1.front();
	}
</code></pre>
<p>Kombiniere ich beides</p>
<pre><code class="language-cpp">T &amp;front() const
	{
		return t1.front();
	}
</code></pre>
<p>bekomme ich den Fehler:<br />
Error C2440: 'return': 'const int' kann nicht in 'int &amp;' konvertiert werden<br />
Durch die Konvertierung gehen Qualifizierer verloren.</p>
<p>Welche Art ist nun die Beste?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019888</guid><dc:creator><![CDATA[MisterX]]></dc:creator><pubDate>Fri, 11 Feb 2011 21:09:51 GMT</pubDate></item><item><title><![CDATA[Reply to stl queue kapseln on Fri, 11 Feb 2011 22:18:53 GMT]]></title><description><![CDATA[<p>Beides:</p>
<pre><code class="language-cpp">T&amp; front()
{
    return t1.front();
}

const T&amp; front() const
{
    return t1.front();
}
</code></pre>
<p>Dann wird die richtige Funktion gewählt, je nachdem ob das Objekt const ist oder nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019901</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Fri, 11 Feb 2011 22:18:53 GMT</pubDate></item></channel></rss>