<?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>Warum kann ich kein Objekt aus diesem Template erfolgreich erstellen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> ?</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template &lt;typename T&gt;class soldat{
private:
    T gehalt;
    T stufe;
public:

    soldat(T &amp;a, T &amp;b){ gehalt = a; stufe = b;}
    ~soldat();

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{

    soldat&lt;3,4&gt; james;
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/322818/template</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 15:43:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322818.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Jan 2014 02:59:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 02:59:13 GMT]]></title><description><![CDATA[<p>Warum kann ich kein Objekt aus diesem Template erfolgreich erstellen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> ?</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template &lt;typename T&gt;class soldat{
private:
    T gehalt;
    T stufe;
public:

    soldat(T &amp;a, T &amp;b){ gehalt = a; stufe = b;}
    ~soldat();

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{

    soldat&lt;3,4&gt; james;
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2375941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375941</guid><dc:creator><![CDATA[Verzweiflung]]></dc:creator><pubDate>Wed, 08 Jan 2014 02:59:13 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 03:00:40 GMT]]></title><description><![CDATA[<p>Verzweiflung schrieb:</p>
<blockquote>
<p>Warum kann ich kein Objekt aus diesem Template erfolgreich erstellen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> ?</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template &lt;typename T&gt;class soldat{
private:
    T gehalt;
    T stufe;
public:

    soldat(T &amp;a, T &amp;b){ gehalt = a; stufe = b;}
    ~soldat();

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{
    
    soldat&lt;3,4&gt; james;
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
</blockquote>
<p>Sorry so war das gemeint bei main xD<br />
soldat&lt;int,int&gt; james(3,4);</p>
<p>geht aber auch nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375942</guid><dc:creator><![CDATA[Verzweiflung]]></dc:creator><pubDate>Wed, 08 Jan 2014 03:00:40 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 03:28:24 GMT]]></title><description><![CDATA[<p>guck mal wie viele template parameter dein klassen-template soldat hat<br />
und dann guck wie viele du angibst<br />
und dann lies dir nochmal die regeln bezüglich non-const lvalue referenzen und rvalues durch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375943</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 08 Jan 2014 03:28:24 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 04:18:49 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>guck mal wie viele template parameter dein klassen-template soldat hat<br />
und dann guck wie viele du angibst<br />
und dann lies dir nochmal die regeln bezüglich non-const lvalue referenzen und rvalues durch</p>
</blockquote>
<p>Sind das nicht einfach nur Gehalt und Stufe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375944</guid><dc:creator><![CDATA[Verzweiflung]]></dc:creator><pubDate>Wed, 08 Jan 2014 04:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 07:04:25 GMT]]></title><description><![CDATA[<p>Verzweiflung schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>guck mal wie viele template parameter dein klassen-template soldat hat<br />
und dann guck wie viele du angibst<br />
und dann lies dir nochmal die regeln bezüglich non-const lvalue referenzen und rvalues durch</p>
</blockquote>
<p>Sind das nicht einfach nur Gehalt und Stufe?</p>
</blockquote>
<p>Wieviele verschiedene Templateparameter? (Das sind die Dinger zwischen template &lt; und &gt; class)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375945</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 08 Jan 2014 07:04:25 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 07:11:03 GMT]]></title><description><![CDATA[<p>Leuder ist völlig unklar, was Du suchst.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template &lt;typename T,typename U&gt;class soldat{
private:
    T gehalt;
    U stufe;
public:

    soldat(T a, U b){ gehalt = a; stufe = b;}
    ~soldat(){};

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{
    soldat&lt;int,float&gt; james(3,2.71);
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; '\n';
    return 0;
}
</code></pre>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template &lt;typename T&gt;class soldat{
private:
    T gehalt;
    T stufe;
public:

    soldat(T a, T b){ gehalt = a; stufe = b;}
    ~soldat(){};

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{
    soldat&lt;int&gt; james(3,4);
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; '\n';
    return 0;
}
</code></pre>
<pre><code>#include &lt;iostream&gt;

using namespace std;

class soldat{
private:
    int gehalt;
    int stufe;
public:

    soldat(int a, int b){ gehalt = a; stufe = b;}
    ~soldat(){};

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{
    soldat james(3,4);
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; '\n';
    return 0;
}
</code></pre>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template&lt;int gehalt&gt;
class soldat{
private:
    int stufe;
public:

    soldat(int b){stufe = b;}
    ~soldat(){};

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{
    soldat&lt;3&gt; james(4);
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; '\n';
    return 0;
}
</code></pre>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template&lt;int gehalt,int stufe&gt;
class soldat{
private:
public:

    soldat(){}
    ~soldat(){};

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{
    soldat&lt;3,4&gt; james();//löl
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; '\n';
    return 0;
}
</code></pre>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template&lt;typename U,typename V,U gehalt,V stufe&gt;
class soldat{
private:
public:
    soldat(){}
    ~soldat(){};

    void getSoldat(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot;  &lt;&lt; stufe;};
};

int main()
{
    soldat&lt;int,long,3,4&gt; james;
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; '\n';
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2375946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375946</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 08 Jan 2014 07:11:03 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 10:20:17 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>und dann lies dir nochmal die regeln bezüglich non-const lvalue referenzen und rvalues durch</p>
</blockquote>
<p>Was hustbaer damit meint:</p>
<pre><code>soldat(T &amp;a, T &amp;b){ gehalt = a; stufe = b;}
</code></pre>
<p>Dass a und b Referenzen sind, ist hier überflüssig. Da sie nicht verändert werden, reicht auch einfach call by value (ohne Ampersand) - falls man aber sicherstellen möchte, dass keine Kopie angelegt wird, macht man eine Const-Referenz (oder wie auch immer Nexus das geschrieben haben will :D):</p>
<pre><code>soldat(T const&amp; a, T const&amp; b){ gehalt = a; stufe = b;}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2375961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375961</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 08 Jan 2014 10:20:17 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 12:53:23 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Const-Referenz (oder wie auch immer Nexus das geschrieben haben will :D)</p>
</blockquote>
<p>Richtig so <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>Wobei die Hauptsache ist, dass man nicht von &quot;konstanter Referenz&quot; spricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375985</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 08 Jan 2014 12:53:23 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 20:59:51 GMT]]></title><description><![CDATA[<p>Danke für die vielen guten Post.<br />
Hat mir schonmal sehr geholfen <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>
<p>Muss jetzt nur noch bisschen Praxis rein bekommen damit ich den Kram glaube ich wirklich verstehe und inhaliert habe <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>
<p>Aber eine kleine Frage habe ich noch auch, wenn die sicher google bar wäre</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

template &lt;class T&gt; class soldat{
    private:
        int gehalt;
        int rang;
    public:

    soldat(T &amp;a,T &amp;b){gehalt=a;rang=b;}; // Warum funktionieren hier keine Referenzen oO
    soldat(){};

    void get_lesen(){cout &lt;&lt; gehalt &lt;&lt; &quot; &quot; &lt;&lt; rang;};
};

int main()
{
    soldat&lt;int&gt; james(3,4);
    cout &lt;&lt; &quot;Hello world!&quot; &lt;&lt; '\n';
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2376058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376058</guid><dc:creator><![CDATA[Verzweiflung]]></dc:creator><pubDate>Wed, 08 Jan 2014 20:59:51 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 21:02:50 GMT]]></title><description><![CDATA[<p>Weil du nur LValues (grob: adressierbare Objekte) an Referenzen binden kannst. <code>3</code> ist ein Literal und als solches kein Objekt mit einer assoziierten Adresse im Speicher. Worauf sollte also die Referenz zeigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376059</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 08 Jan 2014 21:02:50 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Wed, 08 Jan 2014 21:48:12 GMT]]></title><description><![CDATA[<p>Verzweiflung schrieb:</p>
<blockquote>
<pre><code>// ...
template &lt;class T&gt; class soldat{
    private:
        T gehalt;
        T rang;
// ...
};
</code></pre>
</blockquote>
<p>Wenn schon Template, dann verwende es auch bitte. Sonst kannst du dein Template auch ganz streichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376067</guid><dc:creator><![CDATA[Die erinnerung]]></dc:creator><pubDate>Wed, 08 Jan 2014 21:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Thu, 09 Jan 2014 01:14:31 GMT]]></title><description><![CDATA[<p>Dank euch komme ich deutlich besser jetzt mit Templates klar hab aber leider wieder ne Frage. Ich versuche gerade warum auch immer eine Template Klasse in eine Template Klasse einzubauen. Ich gehe mal einfach davon aus das es möglich ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Ka ob man sowas überhaupt braucht aber naja man lebt nur einmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<pre><code>template&lt;class T&gt; class mt{
public:
    void get_test(){cout &lt;&lt; &quot;Test&quot;;};

    template &lt;class A, class B&gt; double addieren(A a, B b){
        return a+b;
    }

    template&lt;class X&gt; class kana{
        private:
                X affe;
        public:
                kana(X a){affe = a;};
                ~kana(){};
                void get_test2(){cout &lt;&lt; &quot;KANA&quot;;};
    };

};

int main(){

int erster=1;
double zweiter = 2.2;

 mt&lt;void&gt; hund; // ich bin mir schon bewusst das templates mit void prima sein müssen xD
 hund.get_test();
 cout &lt;&lt; &quot; &quot; &lt;&lt; hund.addieren(2,3) &lt;&lt; &quot; &quot; &lt;&lt; hund.addieren(erster,zweiter);
 hund.kana&lt;int&gt; lili(3);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2376085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376085</guid><dc:creator><![CDATA[Verzweiflung]]></dc:creator><pubDate>Thu, 09 Jan 2014 01:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Thu, 09 Jan 2014 03:32:37 GMT]]></title><description><![CDATA[<p>Das geht schon, aber Subklassen musst du über ihre vollen Klassennamen ansprechen, soll heißen:</p>
<pre><code>mt&lt;void&gt;::kana&lt;int&gt; lili(3);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2376090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376090</guid><dc:creator><![CDATA[qwas]]></dc:creator><pubDate>Thu, 09 Jan 2014 03:32:37 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Thu, 09 Jan 2014 21:09:15 GMT]]></title><description><![CDATA[<p>Eine letzte Frage noch versprochen <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 />
Ohne was dafür groß zutun also gar nicht erstellt sich der Konstruktor von Kana schonmal. Also müsste ich die Klasse in meiner Klasse doch über hund ansprechen können in main was als Objekt für die Klasse mt erstellt wurde oder?</p>
<p>Ausgabe:</p>
<blockquote>
<p>MT Konstruktor<br />
Test 5 3.2<br />
KANA KONSTRUKTOR</p>
</blockquote>
<p>Super schonmal das sich die Kana Klasse selber schonmal erstellt wie ich die auch immer, dann ansprechen soll ohne Name xD.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

template&lt;class T&gt; class mt{
public:
    mt(){cout &lt;&lt; endl &lt;&lt; &quot;MT Konstruktor &quot; &lt;&lt; endl;}; // HIER DER KONSTRUKTOR

    void get_test(){cout &lt;&lt; &quot;Test&quot;;};

    template &lt;class A, class B&gt; double addieren(A a, B b){
        return a+b;
    }

    template&lt;class X&gt; class kana{
        private:
                X affe;
        public:
                kana(X a=3){affe = a; cout &lt;&lt; endl &lt;&lt; &quot;KANA KONSTRUKTOR&quot; &lt;&lt; endl;};
                ~kana(){};
                void get_test2(){cout &lt;&lt; &quot;KANA&quot;;};
    };

};

int main(){
int erster=1;
double zweiter = 2.2;

 mt&lt;void&gt; hund;
 hund.get_test();
 cout &lt;&lt; &quot; &quot; &lt;&lt; hund.addieren(2,3) &lt;&lt; &quot; &quot; &lt;&lt; hund.addieren(erster,zweiter);
 mt&lt;void&gt;::kana&lt;int&gt; lili(3);

 lili.get_test2();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2376292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376292</guid><dc:creator><![CDATA[Verzweiflung]]></dc:creator><pubDate>Thu, 09 Jan 2014 21:09:15 GMT</pubDate></item><item><title><![CDATA[Reply to Template on Thu, 09 Jan 2014 22:53:21 GMT]]></title><description><![CDATA[<p>Klassen in Klassen sind in C++ immer statisch. D.h. <code>hund</code> hat kein <code>kana</code> -Objekt.<br />
Du kannst <code>hund</code> allerdings ein solches Objekt geben, indem du in <code>hund</code> einen <code>mt&lt;T&gt;::kana&lt;int&gt;</code> -Objekt gibst. Das würde den Template-character allerdings wieder völlig zerstören... (Da du einen Datentyp vorgeben musst)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376310</guid><dc:creator><![CDATA[Die erinnerung]]></dc:creator><pubDate>Thu, 09 Jan 2014 22:53:21 GMT</pubDate></item></channel></rss>