<?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[Warum kann man keine Variable definieren, die wie eine Funktion heißt?]]></title><description><![CDATA[<pre><code class="language-cpp">class BEISPIEL221
{
	private:
	bool machwas();
	bool machwas;
};
</code></pre>
<p>Wieso kann der Kompilierer nicht Variable von Funktion unterscheiden?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169305/warum-kann-man-keine-variable-definieren-die-wie-eine-funktion-heißt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 13:08:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169305.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Jan 2007 08:16:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum kann man keine Variable definieren, die wie eine Funktion heißt? on Thu, 04 Jan 2007 08:16:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class BEISPIEL221
{
	private:
	bool machwas();
	bool machwas;
};
</code></pre>
<p>Wieso kann der Kompilierer nicht Variable von Funktion unterscheiden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202416</guid><dc:creator><![CDATA[FragenDieDieWeltBewegen]]></dc:creator><pubDate>Thu, 04 Jan 2007 08:16:41 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kann man keine Variable definieren, die wie eine Funktion heißt? on Thu, 04 Jan 2007 08:38:41 GMT]]></title><description><![CDATA[<pre><code class="language-html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;1&quot; onclick=&quot;foo('hallo')&quot;&gt;click&lt;/div&gt;
&lt;/body&gt;

&lt;script&gt;
function foo(text) {
    foo = 5;
    alert(foo);
    foo = function() { alert('foo'); }
    foo();
}

&lt;/script&gt;
&lt;/html&gt;
</code></pre>
<p>Javascript rult dich weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202427</guid><dc:creator><![CDATA[Geht Doch]]></dc:creator><pubDate>Thu, 04 Jan 2007 08:38:41 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kann man keine Variable definieren, die wie eine Funktion heißt? on Thu, 04 Jan 2007 09:14:26 GMT]]></title><description><![CDATA[<p>Ganz einfach - alle Bezeichner liegen im selben Namensraum, also kannst du in einem gegebenen Scope jeden Namen nur einmal verwenden (schließlich muß der Compiler wissen, was sich hinter dem Namen verbirgt).</p>
<p>(die Möglichkeiten zur Überladung sind eine Aufweichung dieses Prinzips, aber solange der Compiler nur mit Funktionen zu tun hat, kann er die Unterscheidung anhand der Parameter hinbekommen - Variablen haben keine Parameter und können deshalb auch nicht per Überladungs-Auflösung unterschieden werden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202454</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 04 Jan 2007 09:14:26 GMT</pubDate></item><item><title><![CDATA[Reply to Warum kann man keine Variable definieren, die wie eine Funktion heißt? on Thu, 04 Jan 2007 10:08:35 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>...<br />
(die Möglichkeiten zur Überladung sind eine Aufweichung dieses Prinzips, aber solange der Compiler nur mit Funktionen zu tun hat, kann er die Unterscheidung anhand der Parameter hinbekommen - Variablen haben keine Parameter und können deshalb auch nicht per Überladungs-Auflösung unterschieden werden)</p>
</blockquote>
<p>Naja, aber genau darauf zielt doch die Frage ab. Wenn der Compiler diverse Funktionen anhand ihrer Signatur &quot;ver-mangle-t&quot;, könnte er das mit Variablen auch tun. Unterscheiden kann er das ja sowieso....</p>
<p>Ich würde eher sagen: Die Ausgangsfrage ist falsch !<br />
Die Deklaration/Definition einer Funktion IST bereits die Deklaration/Definition einer Variablen ... und zwar vom Typ eines entsprechenden Funktionspointers.<br />
Das hier:</p>
<pre><code class="language-cpp">typedef int myType;
myType mt = 1;

int main() {
   myType a = mt;
   cout &lt;&lt; a;
}
</code></pre>
<p>entscheidet sich strukturell nicht von</p>
<pre><code class="language-cpp">typedef int (*myFunc)(int);

int mf(int i) {
   cout &lt;&lt; &quot;mf(&quot; &lt;&lt; i &lt;&lt; &quot;)\n&quot;;
   return i+1;
}   

int main() {
   myFunc a = mf;
   a(1);
}
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202499</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 04 Jan 2007 10:08:35 GMT</pubDate></item></channel></rss>