<?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[Zuweisungsoperator in Templateklasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdio.h&gt;

typedef unsigned long uint32_t;

using namespace std;

template&lt; typename T, T &gt;
class TCTypeCapsule
{
private:
  T number;

public:
  TCTypeCapsule(T i)
  {
    number = i;
    cout &lt;&lt; i &lt;&lt; endl;
  }

  // hier liegt das Problem
  TCTypeCapsule&lt;T,T&gt;&amp; operator=(const TCTypeCapsule&lt;T,T&gt;&amp;)
  {
    return number;
  }
};

typedef TCTypeCapsule&lt; uint32_t, 0&gt; EmployeeId_t;
typedef TCTypeCapsule&lt; uint32_t, 1&gt; ProjectId_t;

int main()
{
  uint32_t employeeId(10);
  uint32_t projectId(12);
  employeeId = projectId;
  cout &lt;&lt; employeeId &lt;&lt; endl;
  EmployeeId_t employeeId_(10);
  ProjectId_t projectId_(12);
  //employeeId_ = projectId_;

  return 0;
}
</code></pre>
<p>Ich möchte nun den Zuweisungsoperator implementieren, aufgrund von Verständnisschwierigkeiten bezüglich templates fällt mir das aber ziemlich schwer und ich bekomms net hin. Hoffe ihr könnt mir helfen <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>Gruß, Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170317/zuweisungsoperator-in-templateklasse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 00:58:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170317.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jan 2007 13:37:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zuweisungsoperator in Templateklasse on Sun, 14 Jan 2007 13:37:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgenden Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdio.h&gt;

typedef unsigned long uint32_t;

using namespace std;

template&lt; typename T, T &gt;
class TCTypeCapsule
{
private:
  T number;

public:
  TCTypeCapsule(T i)
  {
    number = i;
    cout &lt;&lt; i &lt;&lt; endl;
  }

  // hier liegt das Problem
  TCTypeCapsule&lt;T,T&gt;&amp; operator=(const TCTypeCapsule&lt;T,T&gt;&amp;)
  {
    return number;
  }
};

typedef TCTypeCapsule&lt; uint32_t, 0&gt; EmployeeId_t;
typedef TCTypeCapsule&lt; uint32_t, 1&gt; ProjectId_t;

int main()
{
  uint32_t employeeId(10);
  uint32_t projectId(12);
  employeeId = projectId;
  cout &lt;&lt; employeeId &lt;&lt; endl;
  EmployeeId_t employeeId_(10);
  ProjectId_t projectId_(12);
  //employeeId_ = projectId_;

  return 0;
}
</code></pre>
<p>Ich möchte nun den Zuweisungsoperator implementieren, aufgrund von Verständnisschwierigkeiten bezüglich templates fällt mir das aber ziemlich schwer und ich bekomms net hin. Hoffe ihr könnt mir helfen <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>Gruß, Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209666</guid><dc:creator><![CDATA[zco]]></dc:creator><pubDate>Sun, 14 Jan 2007 13:37:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zuweisungsoperator in Templateklasse on Sun, 14 Jan 2007 13:42:44 GMT]]></title><description><![CDATA[<p>zco schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template&lt; typename T, T &gt;
</code></pre>
</blockquote>
<p>Der zweite Parameter hier ist ein non-type Parameter, dem du allerdings keinen Namen gegeben hast. Das passt dann aber nicht zu der Deklaration<br />
TCTypeCapsule&lt;T,T&gt;<br />
wie du sie später verwendest. Der Zuweisungsoperator selbst funktioniert in Templateklassen so, wie er es auch in gewöhnlichen Klassen tut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209670</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 14 Jan 2007 13:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zuweisungsoperator in Templateklasse on Sun, 14 Jan 2007 13:59:03 GMT]]></title><description><![CDATA[<p>Übrigens ist kannst du TCTypeCapsule (den Templatenamen ohne Parameter) innerhalb der Klassendefinition als Alias für den qualifizierten Templatenamen verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209683</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 14 Jan 2007 13:59:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zuweisungsoperator in Templateklasse on Sun, 14 Jan 2007 14:00:53 GMT]]></title><description><![CDATA[<p>ok, erstma vielen dank für die schnelle Antworf. Ich habe jetzt also</p>
<pre><code class="language-cpp">// hier liegt das Problem
  TCTypeCapsule&lt;T,T&gt;&amp; operator=(const TCTypeCapsule&lt;T,T&gt;&amp;)
  {
    return number;
  }
</code></pre>
<p>durch</p>
<pre><code class="language-cpp">// hier liegt das Problem
  TCTypeCapsule&lt;typename T,T&gt;&amp; operator=(const TCTypeCapsule&lt;typename T,T&gt;&amp;)
  {
    return number;
  }
</code></pre>
<p>ersetzt. Jetzt kommen aber folgenden Fehler bei der Compilierung:</p>
<pre><code>a1.cpp:21: error: parse error before `,' token
a1.cpp:25: error: parse error before `}' token
</code></pre>
<p>Liegt das daran, das der return-Typ T und nicht TCTypeCapsule ist? Wenn ja, wie kann ich das ändern, wenn nein, dann, äh, tja woran liegt das dann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209685</guid><dc:creator><![CDATA[zco]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zuweisungsoperator in Templateklasse on Sun, 14 Jan 2007 14:42:41 GMT]]></title><description><![CDATA[<p>So, ich habe jetzt entsprechend der Aufgabenstellung den Typen des zweiten Template-Parameters in int geändert. Wird ja, wie in Zeile 26 und 27 zu sehen nur 0 oder 1 zur Unterscheidung übergeben.</p>
<p>Trotzdem ist mir das mit dem Zuweisungsoperator noch nicht ganz klar, da ich noch nicht weiß ob und wie ich den richtigen Typen angebe und warum die Fehlermeldungen kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209714</guid><dc:creator><![CDATA[zco]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:42:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zuweisungsoperator in Templateklasse on Sun, 14 Jan 2007 15:40:11 GMT]]></title><description><![CDATA[<p>Richtig ist er so:</p>
<pre><code class="language-cpp">TCTypeCapsule&amp; operator=(TCTypeCapsule const&amp; other)
{
    if (&amp;other != this) // Selbstzuweisung abfangen
        this-&gt;number = other.number;
    return *this;
}
</code></pre>
<p>Bzgl. der Typen siehe mein vorheriges Posting. Schau dir am Besten nochmal in einem Buch die Syntax für Klassen- und Methodentemplates an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209753</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 14 Jan 2007 15:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zuweisungsoperator in Templateklasse on Sun, 14 Jan 2007 17:14:05 GMT]]></title><description><![CDATA[<p>Vielen Dank, es funktioniert.</p>
<p>Im Vorlesungsskript steht zwar der Funktionsaufbau, aber leider (zumindest für mich) nicht so genau drin. Aber ich werde mir noch mal ein Buch nehmen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1209807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209807</guid><dc:creator><![CDATA[zco]]></dc:creator><pubDate>Sun, 14 Jan 2007 17:14:05 GMT</pubDate></item></channel></rss>