<?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[Template]]></title><description><![CDATA[<p>Hallo ihr Leut,</p>
<p>habe da nen kleines problemchen.</p>
<p>Ich habe eine template Klasse Programmiert. Soweit so gut, wenn die baer funktionieren würde. Das Problem ist folgendes:</p>
<p>Sobald ich ein objekt erzeuge , bringt mir der Compiler den Fehler:</p>
<pre><code>Kein geeigneter Standardkonstruktor verfügbar
</code></pre>
<p>Ich weis net was des sein soll, keine ahnung. Wenn mir einer weiterhelfen kann, wäre ich sehr verbunden.</p>
<p>Hier noch mein gesamter code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;Liste.h&quot;
#include &quot;Listenelement.h&quot;
#include &quot;SmartPointer.h&quot;

using namespace std;

void main ()
{

	SmartPointer&lt;Liste&gt; L;
}

#include &quot;Listenelement.h&quot;

class Liste
{
	private:

		Listenelement *anfang;
		Listenelement *ende;

	public:

		Liste(void);
		~Liste(void);
		void einfuegen(int);
		void ausgeben(void);
};

class Listenelement
{
	private:

		int wert;

	public:

		Listenelement(void);
		~Listenelement(void);

		void setWert(int);
		int getWert(void);
};

template&lt;class T&gt;
class SmartPointer
{
	private:

		T *Zeiger;

	public:

		SmartPointer(T*);
		~SmartPointer(void);

		SmartPointer&lt;T&gt;&amp; operator = (T*);
		T* operator -&gt; ();
};

#include &quot;.\liste.h&quot;

Liste::Liste(void)
{
	anfang = 0;
	ende = 0;
}

Liste::~Liste(void)
{
}

void Liste::einfuegen(int x)
{
}

void Liste::ausgeben(void)
{
}

#include &quot;.\listenelement.h&quot;

Listenelement::Listenelement(void)
{
	wert = 0;
}

Listenelement::~Listenelement(void)
{
}

void Listenelement::setWert(int x)
{
	wert = x;
}

int Listenelement::getWert(void)
{
	return wert;
}

#include &quot;.\smartpointer.h&quot;

template&lt;class T&gt;
SmartPointer&lt;T&gt;::SmartPointer(T* p = 0)
{
	Zeiger = p;
}

template&lt;class T&gt;
SmartPointer&lt;T&gt;::~SmartPointer(void)
{
}

template&lt;class T&gt;
SmartPointer&lt;T&gt;&amp; SmartPointer&lt;T&gt;::operator = (T* p)
{
	Zeiger = p;
	return *this;
}

template&lt;class T&gt;
T* SmartPointer&lt;T&gt;::operator -&gt;()
{
	return Zeiger;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/150038/template</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 12:03:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150038.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jun 2006 15:19:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template on Mon, 12 Jun 2006 15:19:00 GMT]]></title><description><![CDATA[<p>Hallo ihr Leut,</p>
<p>habe da nen kleines problemchen.</p>
<p>Ich habe eine template Klasse Programmiert. Soweit so gut, wenn die baer funktionieren würde. Das Problem ist folgendes:</p>
<p>Sobald ich ein objekt erzeuge , bringt mir der Compiler den Fehler:</p>
<pre><code>Kein geeigneter Standardkonstruktor verfügbar
</code></pre>
<p>Ich weis net was des sein soll, keine ahnung. Wenn mir einer weiterhelfen kann, wäre ich sehr verbunden.</p>
<p>Hier noch mein gesamter code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;Liste.h&quot;
#include &quot;Listenelement.h&quot;
#include &quot;SmartPointer.h&quot;

using namespace std;

void main ()
{

	SmartPointer&lt;Liste&gt; L;
}

#include &quot;Listenelement.h&quot;

class Liste
{
	private:

		Listenelement *anfang;
		Listenelement *ende;

	public:

		Liste(void);
		~Liste(void);
		void einfuegen(int);
		void ausgeben(void);
};

class Listenelement
{
	private:

		int wert;

	public:

		Listenelement(void);
		~Listenelement(void);

		void setWert(int);
		int getWert(void);
};

template&lt;class T&gt;
class SmartPointer
{
	private:

		T *Zeiger;

	public:

		SmartPointer(T*);
		~SmartPointer(void);

		SmartPointer&lt;T&gt;&amp; operator = (T*);
		T* operator -&gt; ();
};

#include &quot;.\liste.h&quot;

Liste::Liste(void)
{
	anfang = 0;
	ende = 0;
}

Liste::~Liste(void)
{
}

void Liste::einfuegen(int x)
{
}

void Liste::ausgeben(void)
{
}

#include &quot;.\listenelement.h&quot;

Listenelement::Listenelement(void)
{
	wert = 0;
}

Listenelement::~Listenelement(void)
{
}

void Listenelement::setWert(int x)
{
	wert = x;
}

int Listenelement::getWert(void)
{
	return wert;
}

#include &quot;.\smartpointer.h&quot;

template&lt;class T&gt;
SmartPointer&lt;T&gt;::SmartPointer(T* p = 0)
{
	Zeiger = p;
}

template&lt;class T&gt;
SmartPointer&lt;T&gt;::~SmartPointer(void)
{
}

template&lt;class T&gt;
SmartPointer&lt;T&gt;&amp; SmartPointer&lt;T&gt;::operator = (T* p)
{
	Zeiger = p;
	return *this;
}

template&lt;class T&gt;
T* SmartPointer&lt;T&gt;::operator -&gt;()
{
	return Zeiger;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1076319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076319</guid><dc:creator><![CDATA[Musterschüler]]></dc:creator><pubDate>Mon, 12 Jun 2006 15:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Mon, 12 Jun 2006 15:38:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">SmartPointer&lt;Liste&gt; L;
</code></pre>
<pre><code class="language-cpp">public:
        SmartPointer(T*);
</code></pre>
<p>Du möchtest einen SmartPointer&lt;Liste&gt; mit dem Standardkonstruktor (einem, der null Parameter erwartet) erstellen, hast aber nur einen Konstruktor mit einem Parameter, der ein Liste* erwartet, zur Verfügung.</p>
<p>Entweder Du konstruierst dem Smartpointer eine zu verwaltende Instanz dazu</p>
<pre><code class="language-cpp">SmartPointer&lt;Liste&gt; L( new Liste() );
</code></pre>
<p>Oder Du spendierst Deinem Smartpointer einen weiteren Konstruktor (wobei das wenig Sinn machen würde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076340</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 12 Jun 2006 15:38:58 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Mon, 12 Jun 2006 15:38:05 GMT]]></title><description><![CDATA[<p>gemeint ist ein konstruktor ohne argumente (gegebenenfalls mittels defaultargumenten). deine smartpointer hat keinen solchen, er würde aber in main (seh ich da schon wieder void main? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> ) benötigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076342</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 12 Jun 2006 15:38:05 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Mon, 12 Jun 2006 15:39:46 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>(seh ich da schon wieder void main? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> )</p>
</blockquote>
<p>Ohje hätte ich das nicht übersehen hätte ich garnicht geantwortet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076346</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 12 Jun 2006 15:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Mon, 12 Jun 2006 17:05:42 GMT]]></title><description><![CDATA[<p>wenn ich das richtig sehe, hat er für den Konstruktor einen Default-Wert...<br />
allerdings muss der ja in der Klassendefinition stehen und nicht in der Deklaration des Kontruktors</p>
<p>also:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class SmartPointer
{
    private:

        T *Zeiger;

    public:

        SmartPointer(T*=0); // hier muss die 0 hin
        ~SmartPointer(void);

        SmartPointer&lt;T&gt;&amp; operator = (T*);
        T* operator -&gt; ();
};
</code></pre>
<pre><code class="language-cpp">template&lt;class T&gt;
SmartPointer&lt;T&gt;::SmartPointer(T* p) // und hier muss sie weg
{
    Zeiger = p;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1076423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076423</guid><dc:creator><![CDATA[Dommel]]></dc:creator><pubDate>Mon, 12 Jun 2006 17:05:42 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Mon, 12 Jun 2006 17:34:48 GMT]]></title><description><![CDATA[<p>Ah, die Impl hab ich mir garnicht mehr angeschaut nachdem ich den Konstruktor <strong>ohne</strong> Default-Parameter angeschaut habe <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/1076449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076449</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 12 Jun 2006 17:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Mon, 12 Jun 2006 17:54:13 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Ah, die Impl hab ich mir garnicht mehr angeschaut nachdem ich den Konstruktor <strong>ohne</strong> Default-Parameter angeschaut habe <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>dito. ein guter schiri muss das auch abpfeifen. err... <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/1076458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076458</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 12 Jun 2006 17:54:13 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Tue, 13 Jun 2006 07:47:56 GMT]]></title><description><![CDATA[<p>Also Jungs ( vielleicht auch Mädels ),</p>
<p>erstmal danke für eure Hilfe!</p>
<p>Eure Ratschläge habe ich mir mal zu herzen genommen und diese dann auch mal umgesetzt.<br />
Leider funktioniert das so alles nicht. Wobei dies mit dem &quot;void main()&quot; habe ich net so ganz verstanden was gemeint war, aber es muss auch mit &quot;void main ()&quot; funktionieren. Habe auch nen anderen Code ( sehr ähnlich ) wo es auch funktioniert.</p>
<p>Mich würde mal interessiern, ob ihr das auch mal ausgetestet habt?</p>
<p>Z.B. das von &quot;DOMMEL&quot; funktioniert mal garnet. Ich bekomme da nen Fehler, auch ohne ein Objekt zu erstellen. Da könnte ich nen Hals bekommen!!!</p>
<p>Also Jungs ( vielleicht auch Mädels ), bitte bitte bitte, wenn es denn für EUCH machbart ist, dann schriebt was hin, was auch definitiv funktioniert und net irgendwelchen Code, wo ihr der Meinung seit, das es funktionieren müsste allein vom drauf gucken.<br />
Ich unterstellen euch allen mal, das ihr HELFEN wollt. Dann seit so nett und schreibt auch mal das hin was funktioniert.</p>
<p>Gruß</p>
<p>Musterschüler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076688</guid><dc:creator><![CDATA[Musterschüler]]></dc:creator><pubDate>Tue, 13 Jun 2006 07:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Tue, 13 Jun 2006 08:08:07 GMT]]></title><description><![CDATA[<p>Probier mal folgendes (ist sogar getestet... <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>
<pre><code class="language-cpp">template&lt;class T&gt; 
class SmartPointer 
{ 
    private: 

        T *Zeiger; 

    public: 

        SmartPointer(T* p=0); 
        ~SmartPointer(void); 

        SmartPointer&lt;T&gt;&amp; operator = (T*); 
        T* operator -&gt; (); 
};
</code></pre>
<p>das &quot;=0&quot; musst du dann in der Konstruktor-Definitaion natürlich wieder weg nehmen...</p>
<p>Ich hab deinen Code mal in eine Datei kopiert und die Klassen-Deklarationen so vertauscht, dass sie in der richtigen Reihenfolge stehen und es wird fehlerfrei kompiliert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076697</guid><dc:creator><![CDATA[Dommel]]></dc:creator><pubDate>Tue, 13 Jun 2006 08:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Tue, 13 Jun 2006 08:08:47 GMT]]></title><description><![CDATA[<p>Erstmal mußt du Template-Funktionen direkt in die jeweiligen Programme includen, sonst findet der Compiler (bzw. der Linker) sie nicht wieder.</p>
<p>(denk mal darüber nach: Woher soll der Compiler denn wissen, ob er einen SmartPointer&lt;Liste&gt; oder SmartPointer&lt;int&gt; benötigt, wenn er nur die Pointer.cpp sieht?)</p>
<p>PS@&quot;void main()&quot;: mag sein, daß das dein Compiler schluckt, aber laut Standard ist es nicht erlaubt - da heißt das &quot;<strong>int</strong> main()&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076698</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Jun 2006 08:08:47 GMT</pubDate></item></channel></rss>