<?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[const correctness]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Problem mit const. Folgender Code:</p>
<pre><code>int PositionSet::addPosition(const Position&amp; position) {
    ...
    mPositions.insert ( position );

    const Journal&amp; journal = position.getDepot().getJournal(); // Liefern alle konstante Referenzen
    Journal&amp; mutableJournal = const_cast&lt;Journal&amp;&gt;( journal );
    mutableJournal.notifyNumPositionsChanged(  position.getDepot().getName() );
}
</code></pre>
<p>Diese Methode fügt eine Position in einen Member mPositions ein. Jetzt muss die GUI (QT View) über diese Änderung benachrichtigt werden. Das Model, das dafür zuständig ist wird von Journal gehalten.<br />
Sämtliche getter() liefern konstante Referenzen. Das ist so weit ja auch richtig: Ich will weder position ändern, noch das Depot. Das Problem ist nur das Journal: Hier muss ich notifyNumPositionsChanged() aufrufen, dass intern das Model des Journals ändert. notifyNumPositionsChanged() kann also NICHT const sein.<br />
Drum caste ich im Moment die constness einfach weg, was natürlich unschön ist.<br />
Könnte man das irgendwie anders lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325182/const-correctness</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 05:35:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325182.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Apr 2014 11:45:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const correctness on Fri, 18 Apr 2014 11:45:14 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Problem mit const. Folgender Code:</p>
<pre><code>int PositionSet::addPosition(const Position&amp; position) {
    ...
    mPositions.insert ( position );

    const Journal&amp; journal = position.getDepot().getJournal(); // Liefern alle konstante Referenzen
    Journal&amp; mutableJournal = const_cast&lt;Journal&amp;&gt;( journal );
    mutableJournal.notifyNumPositionsChanged(  position.getDepot().getName() );
}
</code></pre>
<p>Diese Methode fügt eine Position in einen Member mPositions ein. Jetzt muss die GUI (QT View) über diese Änderung benachrichtigt werden. Das Model, das dafür zuständig ist wird von Journal gehalten.<br />
Sämtliche getter() liefern konstante Referenzen. Das ist so weit ja auch richtig: Ich will weder position ändern, noch das Depot. Das Problem ist nur das Journal: Hier muss ich notifyNumPositionsChanged() aufrufen, dass intern das Model des Journals ändert. notifyNumPositionsChanged() kann also NICHT const sein.<br />
Drum caste ich im Moment die constness einfach weg, was natürlich unschön ist.<br />
Könnte man das irgendwie anders lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2395266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2395266</guid><dc:creator><![CDATA[Jakob+]]></dc:creator><pubDate>Fri, 18 Apr 2014 11:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to const correctness on Fri, 18 Apr 2014 12:08:19 GMT]]></title><description><![CDATA[<p>Mach notifyNumPositionsChanged eine const Memberfunktion und deklariere die Variablen, die verändert werden als <em>mutable</em>. Schön ist das zwar immer noch nicht, aber um Längen besser als <em>const_cast</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2395269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2395269</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 18 Apr 2014 12:08:19 GMT</pubDate></item></channel></rss>