<?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[Operatoren () und = kombiniert überschreiben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Klasse &quot;Verwaltung&quot;, die Daten verwaltet. Sagen wir mit den Argumenten<br />
int a, int b<br />
können auf einzelne Daten dieser Klasse zugegriffen werden.</p>
<p>Nun möchte ich folgende Zugriffe ermöglichen:</p>
<p>c = Verwaltung(a,b); // liefert einen bestimmtent Datensatz<br />
Verwaltung(a,b) = c; // überschreibt einen vorhandenen Datensatz oder legt einen neuen an, wenn er noch nicht vorhanden war</p>
<p>Den ersten Punkt habe ich hinbekommen, nur bei der Zuweisung komme ich nicht weiter. Kann mir da jemand helfen, bzw. ist das überhaupt möglich?</p>
<p>Ich danke für eure Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/231823/operatoren-und-kombiniert-überschreiben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 08:45:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/231823.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Jan 2009 14:58:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 15 Jan 2009 14:58:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Klasse &quot;Verwaltung&quot;, die Daten verwaltet. Sagen wir mit den Argumenten<br />
int a, int b<br />
können auf einzelne Daten dieser Klasse zugegriffen werden.</p>
<p>Nun möchte ich folgende Zugriffe ermöglichen:</p>
<p>c = Verwaltung(a,b); // liefert einen bestimmtent Datensatz<br />
Verwaltung(a,b) = c; // überschreibt einen vorhandenen Datensatz oder legt einen neuen an, wenn er noch nicht vorhanden war</p>
<p>Den ersten Punkt habe ich hinbekommen, nur bei der Zuweisung komme ich nicht weiter. Kann mir da jemand helfen, bzw. ist das überhaupt möglich?</p>
<p>Ich danke für eure Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1646233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1646233</guid><dc:creator><![CDATA[Kratzefunkel]]></dc:creator><pubDate>Thu, 15 Jan 2009 14:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 15 Jan 2009 15:04:23 GMT]]></title><description><![CDATA[<p>Möglich ist es schon. Du kannst eine Referenz auf das Objekt zurückgeben und dann kannst du das so schreiben. Allerdings stellt sich die Frage, ob du nicht lieber einen Setter hast.</p>
<pre><code class="language-cpp">SetVerwaltung (a,b,c)
</code></pre>
<p>Ist gebräuchlicher, als die Variante mit der Referenz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1646243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1646243</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 15 Jan 2009 15:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 15 Jan 2009 15:10:01 GMT]]></title><description><![CDATA[<p>Ich überlade <code>operator()</code> eigentlich nicht so gerne (nur bei Funktoren), da ich das nicht so übersichtlich finde.</p>
<p>Wenn du es in Set- und Get-Methoden aufteilst, brauchst du auch nicht Angst zu haben, dass etwas aus Versehen geändert wird. Denn gerade weil jedes Mal ein Eintrag erstellt wird, wenn er noch nicht vorhanden ist, kann es leicht passieren, dass man aus Versehen einen erstellt, wenn man nur lesen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1646253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1646253</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 15 Jan 2009 15:10:01 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 15 Jan 2009 15:11:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke schon einmal für die Antwort!</p>
<p>Die setter-Variante wäre meine Notlösung. Aber davon muss ich dann erstmal den überzeugen, der sich das ausgedacht hat <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>Wenn ich das mit der Referenz auf das Objekt mache, heißt das, dass ich dann ein Dummy-Objekt auch bei der Suchanfrage erstellen muss? Also sprich, wenn Verwaltung(a,b) einen nicht vorhandenen Wert anspricht. Oder kann ich irgendwie erreichen, dass bei dem ersten Funktionsaufruf ohne Zuweisung eine völlig andere Funktion aufgerufen wird, als beim Funktionsaufruf mit der Zuweisung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1646255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1646255</guid><dc:creator><![CDATA[Kratzefunkel]]></dc:creator><pubDate>Thu, 15 Jan 2009 15:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 15 Jan 2009 15:32:05 GMT]]></title><description><![CDATA[<p>Also wenn du etwas nicht findest, musst du ein Dummyobjekt zurückgeben, oder eine exception werfen.</p>
<p>Ansonsten kannst du für die Zuweisung und das Abfragen die gleiche Funktion nutzen. Wenn du eine Überladung willst für die Abfrage, dann musst du wohl oder übel einen weiteren Dummyparameter übergeben, um anzuzeigen, welchen du willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1646285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1646285</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 15 Jan 2009 15:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 15 Jan 2009 15:35:49 GMT]]></title><description><![CDATA[<p>Ok, und das wäre exakt etwas, was entgegen dem eigentlichen Ziel der ganzen Sache verläuft.</p>
<p>Ich danke euch für eure Antworten, ihr habt mir sehr geholfen <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/1646289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1646289</guid><dc:creator><![CDATA[Kratzefunkel]]></dc:creator><pubDate>Thu, 15 Jan 2009 15:35:49 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 15 Jan 2009 20:27:32 GMT]]></title><description><![CDATA[<p>Naja, man könnte ein Proxy-Objekt zurückgeben.</p>
<p>Die Proxy-Klasse überlädt dann den operator =.<br />
Wenn nun ein nicht vorhandener Wert gesucht wird, kannst du damit immerhin verhindern, dass unnötigerweise ein Dummy-Objekt eingefügt wird. Wenn eine Zuweisung passiert, dann wird danach der operator = aufgerufen, und der kümmert sich in dem Fall dann darum, dass der entsprechende Eintrag gemacht wird.</p>
<p>Ahja, die Proxy Klasse implementiert natürlich auch noch einen operator T (=implizite Konvertierung in den Typ T) - damit kann man dann auch <code>T var = Suche(a, b);</code> schreiben.</p>
<p>p.S.: der operator T wird wohl eine Exception werfen müssen, wenn das Proxy-Objekt &quot;leer&quot; ist. Zusätzlich könntest du aber auch noch einen Operator boost::optional&lt;T&gt; definieren, der dann in dem Fall ein leeres boost::optional zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1646580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1646580</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 15 Jan 2009 20:27:32 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 22 Jan 2009 19:33:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>noch eine Rückmeldung <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>Ich habe das Problem geschildert und wir haben uns dafür entschieden es mit einer set-Funktion zu lösen. Das mit der Proxy-Klasse wäre zu viel Aufwand gewesen und hätte dann eine andere Sache torpediert. Aber grundsätzlich natürlich eine sehr schöne Lösung <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>Danke nochmal für die Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650492</guid><dc:creator><![CDATA[Kratzefunkel]]></dc:creator><pubDate>Thu, 22 Jan 2009 19:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Thu, 22 Jan 2009 19:39:31 GMT]]></title><description><![CDATA[<p>Kratzefunkel schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>noch eine Rückmeldung <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>
</blockquote>
<p><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>Es ist die gängigste Lösung eines solchen Problems. - Daher bist du sicher einmal auf der sicheren Seite.;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1650496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650496</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 22 Jan 2009 19:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Fri, 23 Jan 2009 12:17:19 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Daher bist du sicher einmal auf der sicheren Seite.;)</p>
</blockquote>
<p>Sicherlich sogar ganz sicher <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="😃"
    /> <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/1650786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1650786</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 23 Jan 2009 12:17:19 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren () und = kombiniert überschreiben on Sat, 24 Jan 2009 10:01:48 GMT]]></title><description><![CDATA[<p>jencas schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Daher bist du sicher einmal auf der sicheren Seite.;)</p>
</blockquote>
<p>Sicherlich sogar ganz sicher <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="😃"
    /> <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>
</blockquote>
<p>[spam begrüdundung=&quot;ich darf auch mal&quot;]Sich versichern versichert Unversicherte sicherlich.[/spam]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1651277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1651277</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 24 Jan 2009 10:01:48 GMT</pubDate></item></channel></rss>