<?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[Namenskonflikt vermeiden]]></title><description><![CDATA[<p>Nehmen wir einmal folgendes an:</p>
<p>- Ich habe 2 *.cpp Files<br />
- jede dieser Codedateien enthält die Funktion void dasMussSoHeissen()<br />
- die Funktionen werden jeweils nur in der dazu gehörenden *.cpp-Datei benutzt.<br />
- die Funktionen dürfen aus einem mystischen Grund nicht umbenannt werden<br />
- die beiden Quellcodefiles wissen nichts voneinander, gehören aber zu einem Projekt.</p>
<p>Wie kann ich den Namenskonflikt vermeiden, den der Compiler hier diagnostiziert, ohne den Namen der Funktion zu ändern. Ist es quasi möglich eine Function &quot;privat&quot; bezüglich einer Datei zu deklarieren. Also dass sie nur innerhalb der Quellcodedatei verfügbar ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/120280/namenskonflikt-vermeiden</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 07:32:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/120280.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Sep 2005 15:57:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Sun, 11 Sep 2005 15:57:46 GMT]]></title><description><![CDATA[<p>Nehmen wir einmal folgendes an:</p>
<p>- Ich habe 2 *.cpp Files<br />
- jede dieser Codedateien enthält die Funktion void dasMussSoHeissen()<br />
- die Funktionen werden jeweils nur in der dazu gehörenden *.cpp-Datei benutzt.<br />
- die Funktionen dürfen aus einem mystischen Grund nicht umbenannt werden<br />
- die beiden Quellcodefiles wissen nichts voneinander, gehören aber zu einem Projekt.</p>
<p>Wie kann ich den Namenskonflikt vermeiden, den der Compiler hier diagnostiziert, ohne den Namen der Funktion zu ändern. Ist es quasi möglich eine Function &quot;privat&quot; bezüglich einer Datei zu deklarieren. Also dass sie nur innerhalb der Quellcodedatei verfügbar ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869683</guid><dc:creator><![CDATA[KFlash]]></dc:creator><pubDate>Sun, 11 Sep 2005 15:57:46 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Sun, 11 Sep 2005 15:59:38 GMT]]></title><description><![CDATA[<p>private zu einer Übersetznugseinheit (cpp + alle Includes die du darin machst) -&gt; static</p>
<p>Aber besser sind hier jetzt anonyme Namespaces:</p>
<pre><code class="language-cpp">namespace
{
    void tolleFunktionNurHierVerwendbar();
}

...

void andereFunktion ()
{
    tolleFunktionNurHierVerwendbar(); // Hier aufrufabr wie ganz normale Func
}
</code></pre>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869686</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 11 Sep 2005 15:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Sun, 11 Sep 2005 16:05:09 GMT]]></title><description><![CDATA[<p>Das heißt also &quot;die betreffenden Funktionen jeweils in einen solchen anonymen Namespace kapseln&quot; bewirkt, dass sie für die Funktionen der eigenen &quot;Übersetzungseinheit&quot; benutzbar bleiben, aber rein sprachlich nicht mehr mit dem Namen einer Funktion in einer anderen &quot;Übersetzungseinheit&quot; kollidieren, auch wenn sie gleich heißen?</p>
<p>Dass klingt sehr gut. Gibt es dabei irgendwelche Nachteile die anonyme Namespaces mit sich bringen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869689</guid><dc:creator><![CDATA[KFlash]]></dc:creator><pubDate>Sun, 11 Sep 2005 16:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Sun, 11 Sep 2005 16:51:55 GMT]]></title><description><![CDATA[<p>Anscheinend gibt es keine Nachteile...umso besser!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869721</guid><dc:creator><![CDATA[KFlash]]></dc:creator><pubDate>Sun, 11 Sep 2005 16:51:55 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Sun, 11 Sep 2005 16:57:58 GMT]]></title><description><![CDATA[<p>Glaub auch nicht, dass es da Nachteile gibt. Wurde ja extra für diesen Zweck eingeführt.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869724</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 11 Sep 2005 16:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Sun, 11 Sep 2005 18:43:32 GMT]]></title><description><![CDATA[<p>Ist ja nur eine Aussernanderhaltung für den Compiler, der Code der am Ende rauskommt, ist der gleiche, wie ohne Namespaces.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869783</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 11 Sep 2005 18:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Mon, 12 Sep 2005 14:50:21 GMT]]></title><description><![CDATA[<p>So ganz funktioniert das noch nicht. Wie kann ich die Funktion welche in dem Namespace steht Vorwärtsdeklarieren?</p>
<p>Momentan siehts so aus...</p>
<pre><code class="language-cpp">//----- foward declaration -----
bool stdDrawFunc(TglObject* self);

//----- constructor -----
TglButton::TglButton()
{
	DoDraw = stdDrawFunc;
}

//----- standard draw function -----
namespace
{
	bool stdDrawFunc(TglObject* self)
	{
		return true;
	}
}
</code></pre>
<p>Aus mystischen Gründen die hier nicht näher beschrieben stehen, kann die Funktion nicht über dem Konstruktor geschrieben werden. Ein hinweis auf diese Möglichkeit wird als obsolet angesehen und nicht beachtet... <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/870348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/870348</guid><dc:creator><![CDATA[KFlash]]></dc:creator><pubDate>Mon, 12 Sep 2005 14:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Mon, 12 Sep 2005 15:11:34 GMT]]></title><description><![CDATA[<p>1. Sollte die Forward-Dekl. auch im anonymen Namesapce stehen!?<br />
2. Schreib doch einfach die gesamte Funktion drüber.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/870362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/870362</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 12 Sep 2005 15:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Namenskonflikt vermeiden on Mon, 12 Sep 2005 15:19:29 GMT]]></title><description><![CDATA[<p>Juhu...so gehts... Danke nochmal...</p>
<p>(jetzt kann mich nichts mehr aufhalten... abgesehn vom nächsten Fehler...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/870371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/870371</guid><dc:creator><![CDATA[KFlash]]></dc:creator><pubDate>Mon, 12 Sep 2005 15:19:29 GMT</pubDate></item></channel></rss>