<?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]]></title><description><![CDATA[<p>kann mir mal bitte jemand den genauen unterschied zwischen den beiden folgenden deklarationen erklären?</p>
<pre><code class="language-cpp">//t beliebige klasse
t const var_t_const;
const t var_const_t;
</code></pre>
<p>was mich auch interessiert, wo der unterschied in den zugriffs-/änderungsmöglichkeiten der variablen var_t_const bzw var_const_t liegt, falls es welche gibt.<br />
Desweiteren interessiert mich noch, wenn zum Beispiel bei Funktionen Referenzen oder Pointer dieser Art übergeben werden, was man damit dann machen darf und was nicht.</p>
<pre><code class="language-cpp">void foo_const_t_r(const t &amp;p);
void foo_t_const_r(t const &amp;p);
void foo_const_t_p(const t *p);
void foo_t_const_p(t const *p);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/200774/const</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 04:09:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200774.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Dec 2007 16:08:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const on Wed, 19 Dec 2007 16:08:49 GMT]]></title><description><![CDATA[<p>kann mir mal bitte jemand den genauen unterschied zwischen den beiden folgenden deklarationen erklären?</p>
<pre><code class="language-cpp">//t beliebige klasse
t const var_t_const;
const t var_const_t;
</code></pre>
<p>was mich auch interessiert, wo der unterschied in den zugriffs-/änderungsmöglichkeiten der variablen var_t_const bzw var_const_t liegt, falls es welche gibt.<br />
Desweiteren interessiert mich noch, wenn zum Beispiel bei Funktionen Referenzen oder Pointer dieser Art übergeben werden, was man damit dann machen darf und was nicht.</p>
<pre><code class="language-cpp">void foo_const_t_r(const t &amp;p);
void foo_t_const_r(t const &amp;p);
void foo_const_t_p(const t *p);
void foo_t_const_p(t const *p);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1423312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423312</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Wed, 19 Dec 2007 16:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to const on Wed, 19 Dec 2007 16:31:55 GMT]]></title><description><![CDATA[<p>Zwischen den beiden Schreibweisen gibt es keinen semantischen Unterschied.</p>
<p>Und bei der Übergabe von konstanten Referenzen oder Zeigern kann man die Inhalte nicht verändern, d.h. nur lesen.<br />
Ansonsten unterscheidet sich innerhalb der Funktion nur die Syntax, d.h. Punkt-Operator (.) oder Zeiger-Operator ( -&gt; bzw. (*x). ).</p>
<p>Und Zeiger können auf nichts zeigen (Nullzeiger: 0), während hinter einer Referenz immer ein Objekt steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423328</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Wed, 19 Dec 2007 16:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to const on Wed, 19 Dec 2007 17:24:14 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<p>Zwischen den beiden Schreibweisen gibt es keinen semantischen Unterschied.</p>
<p>Und bei der Übergabe von konstanten Referenzen oder Zeigern kann man die Inhalte nicht verändern, d.h. nur lesen.<br />
Ansonsten unterscheidet sich innerhalb der Funktion nur die Syntax, d.h. Punkt-Operator (.) oder Zeiger-Operator ( -&gt; bzw. (*x). ).</p>
<p>Und Zeiger können auf nichts zeigen (Nullzeiger: 0), während hinter einer Referenz immer ein Objekt steht.</p>
</blockquote>
<p>Das sehe ich zumindest bei Zeigern etwas anders.<br />
Da besteht meines Wissens nach ein Unterschied.</p>
<p>Beispiel</p>
<pre><code class="language-cpp">const int x;       // ok
x = 2;             // illegal

const int* x;     
*x = 3;            // illegal
x = &amp;y;            // ok

int* const x;
*x = 4;            // ok
x = &amp;y;            // illegal

const int* const x;        
*x = 5;            // illegal
x = &amp;y;            // illegal
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1423346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423346</guid><dc:creator><![CDATA[Trille]]></dc:creator><pubDate>Wed, 19 Dec 2007 17:24:14 GMT</pubDate></item><item><title><![CDATA[Reply to const on Wed, 19 Dec 2007 17:42:03 GMT]]></title><description><![CDATA[<p>1. Bei dem Beispiel...</p>
<p>void foo_const_t_r(const t &amp;p);<br />
void foo_t_const_r(t const &amp;p);<br />
void foo_const_t_p(const t *p);<br />
void foo_t_const_p(t const *p);</p>
<p>...ist kein Unterschied zwischen den Zeigern/Referenzen.</p>
<p>2. @Thrille</p>
<p>const int x; // nicht ok, weil Initialisierung fehlt</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423356</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Wed, 19 Dec 2007 17:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to const on Wed, 19 Dec 2007 18:26:59 GMT]]></title><description><![CDATA[<p>Trille schrieb:</p>
<blockquote>
<p>Das sehe ich zumindest bei Zeigern etwas anders.<br />
Da besteht meines Wissens nach ein Unterschied.</p>
<p>Beispiel</p>
<pre><code class="language-cpp">const int x;       // ok
x = 2;             // illegal

const int* x;     
*x = 3;            // illegal
x = &amp;y;            // ok

int* const x;
*x = 4;            // ok
x = &amp;y;            // illegal

const int* const x;        
*x = 5;            // illegal
x = &amp;y;            // illegal
</code></pre>
</blockquote>
<p>ja, aber du stellst das const auch nach das sternchen <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="😉"
    /><br />
das äquivalent, das gleichbedeutend wäre zu</p>
<pre><code class="language-cpp">const int* x;
</code></pre>
<p>lautet</p>
<pre><code class="language-cpp">int const* x;
</code></pre>
<p>letztere schreibweise wird oft bevorzugt, weil man sie besser &quot;lesen&quot; kann, nämlich von rechts nach links:</p>
<pre><code class="language-cpp">int const * const x; //konstanter (const) zeiger auf (*) konstante (const) ganzzahl (int)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1423374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423374</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Wed, 19 Dec 2007 18:26:59 GMT</pubDate></item><item><title><![CDATA[Reply to const on Wed, 19 Dec 2007 19:13:03 GMT]]></title><description><![CDATA[<p>ich denke ich habs jetzt verstanden, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423399</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Wed, 19 Dec 2007 19:13:03 GMT</pubDate></item><item><title><![CDATA[Reply to const on Wed, 19 Dec 2007 23:44:19 GMT]]></title><description><![CDATA[<p>queer_boy schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int const * const x; //konstanter (const) zeiger auf (*) konstante (const) ganzzahl (int)
</code></pre>
</blockquote>
<p>Man kanns auch von links nach rechts lesen:<br />
&quot;Die Integer-Konstanten-Zeiger-Konstante x&quot;. <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/1423524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423524</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 19 Dec 2007 23:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to const on Thu, 20 Dec 2007 04:18:38 GMT]]></title><description><![CDATA[<p>Das ist alles einfach nur schrecklich und hat zur Abneigung gegen Zeiger geführt. <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="👎"
    /> :xmas1: :xmas2:</p>
<p>Kann das jemand zur Vollständigkeit auch für C++ und Referenzen aufzeigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423538</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Thu, 20 Dec 2007 04:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to const on Thu, 20 Dec 2007 07:39:37 GMT]]></title><description><![CDATA[<p>Da gibt es nicht viel aufzuzeigen: Da Referenzen nicht &quot;veränderbar&quot; sind, darf rechts vom &amp; kein const stehen. Der Rest gilt wie oben <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/1423563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423563</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 20 Dec 2007 07:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to const on Thu, 20 Dec 2007 14:11:48 GMT]]></title><description><![CDATA[<blockquote>
<p>Das ist alles einfach nur schrecklich und hat zur Abneigung gegen Zeiger geführt</p>
</blockquote>
<p>Nope, das ist alles ganz einfach <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="🙂"
    /> <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="🙂"
    /> <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>Kompliziert wird es wenns um Funktionszeiger geht. Und wenn die Funktion dann nochmal Funktionszeiger als Parameter nimmt... aber sowas braucht man ja kaum, und kann man meist schön mit typedef umgehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423851</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 20 Dec 2007 14:11:48 GMT</pubDate></item><item><title><![CDATA[Reply to const on Thu, 20 Dec 2007 15:33:47 GMT]]></title><description><![CDATA[<p>Allgemeine Regel:</p>
<p>1. Beginnend beim Bezeichner</p>
<p>2. Steht rechts () oder [], dann ist dies zu interpretieren<br />
3. Ansonsten wird links der Stern, falls vorhanden, interpretiert</p>
<p>4. Zuletzt wird der Grundtyp ausgewertet.</p>
<p>Dabei wird 2. und 3. so oft wiederholt, bis alles aufgelöst ist.</p>
<pre><code class="language-cpp">char *(*(*funcptr)())[]
</code></pre>
<p>1. funcptr ist ein<br />
2. Zeiger auf<br />
3. eine Funktion mit dem Returntyp<br />
4. Zeiger auf<br />
5. einen Vektor mit Elementen vom Typ<br />
6. Zeiger auf<br />
7. char</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423921</guid><dc:creator><![CDATA[ceplusplus@loggedoff]]></dc:creator><pubDate>Thu, 20 Dec 2007 15:33:47 GMT</pubDate></item></channel></rss>