<?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[Anonymer Namesoace]]></title><description><![CDATA[<p>Ich möchte gerne eine Klasse in einer .cpp Datei verstecken. Um diese zu benutzen arbeite ich mit einer Vorwärtsdeklaration. Siehe folgendes Beispiel:</p>
<pre><code class="language-cpp">#ifndef FORWARD_H
#define FORWARD_H

class apfel;

class mensch
{

public:
	void essen();

private:

	apfel* obst;
};

int main()
{
	mensch ich;
	ich.essen();
	return 0;
}

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;forward.h&quot;
#include &lt;iostream&gt;

namespace
{

class apfel
{
public:
	void abbeissen();
};

void apfel::abbeissen()
{
	std::cout &lt;&lt; &quot;Der Mensch hat vom Apfel abgebissen! &quot; &lt;&lt; std::endl;
}

} // namespace

void mensch::essen()
{
	obst = new apfel;
	obst-&gt;abbeissen();
}
</code></pre>
<p>ich bekomme folgende Fehlermeldung:</p>
<p>*error C2872: 'apfel' : Mehrdeutiges Symbol<br />
error C2512: 'apfel' : Kein geeigneter Standardkonstruktor verfuegbar<br />
error C2027: Verwendung des undefinierten Typs &quot;apfel&quot;<br />
*<br />
Was habe ich falsch gemacht und wie kann ich das korregieren?<br />
Das ist nur ein Beispiel, welches ich vom Prinziep her so benutzen muss.<br />
Also Klasse verstecken und durch Vorwärtsdeklaration bekannt machen.</p>
<p>Danke und Gruß!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183575/anonymer-namesoace</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 08:39:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183575.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Jun 2007 10:39:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anonymer Namesoace on Wed, 06 Jun 2007 10:40:15 GMT]]></title><description><![CDATA[<p>Ich möchte gerne eine Klasse in einer .cpp Datei verstecken. Um diese zu benutzen arbeite ich mit einer Vorwärtsdeklaration. Siehe folgendes Beispiel:</p>
<pre><code class="language-cpp">#ifndef FORWARD_H
#define FORWARD_H

class apfel;

class mensch
{

public:
	void essen();

private:

	apfel* obst;
};

int main()
{
	mensch ich;
	ich.essen();
	return 0;
}

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;forward.h&quot;
#include &lt;iostream&gt;

namespace
{

class apfel
{
public:
	void abbeissen();
};

void apfel::abbeissen()
{
	std::cout &lt;&lt; &quot;Der Mensch hat vom Apfel abgebissen! &quot; &lt;&lt; std::endl;
}

} // namespace

void mensch::essen()
{
	obst = new apfel;
	obst-&gt;abbeissen();
}
</code></pre>
<p>ich bekomme folgende Fehlermeldung:</p>
<p>*error C2872: 'apfel' : Mehrdeutiges Symbol<br />
error C2512: 'apfel' : Kein geeigneter Standardkonstruktor verfuegbar<br />
error C2027: Verwendung des undefinierten Typs &quot;apfel&quot;<br />
*<br />
Was habe ich falsch gemacht und wie kann ich das korregieren?<br />
Das ist nur ein Beispiel, welches ich vom Prinziep her so benutzen muss.<br />
Also Klasse verstecken und durch Vorwärtsdeklaration bekannt machen.</p>
<p>Danke und Gruß!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299910</guid><dc:creator><![CDATA[Stonecold_Mario]]></dc:creator><pubDate>Wed, 06 Jun 2007 10:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to Anonymer Namesoace on Wed, 06 Jun 2007 10:50:45 GMT]]></title><description><![CDATA[<p>es geht nich die klasse apfel ist nicht die gleiche klasse wie &lt;anon_namepsace_of_foofile&gt;::apfel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299922</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Wed, 06 Jun 2007 10:50:45 GMT</pubDate></item><item><title><![CDATA[Reply to Anonymer Namesoace on Wed, 06 Jun 2007 10:57:18 GMT]]></title><description><![CDATA[<p>den anonymen namespace wegtun. die vorwärtsdeklaration von &quot;apfel&quot; ist ja auch nicht in einem drin.</p>
<p>und spätestens in &quot;main&quot;, wo du eine memberfunktion von apfel aufrufst, brauchst du die vollständige definition der klasse. wenn du die implementation von &quot;apfel&quot; verstecken willt, google mal nach &quot;pimpl idiom&quot;</p>
<p>/edit. ups, du rufst in main ja gar keine funktion von apfel auf. also dann ist die lösung einfach: anonymen namespace weglassen und nach pimpl googeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299924</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Wed, 06 Jun 2007 10:57:18 GMT</pubDate></item><item><title><![CDATA[Reply to Anonymer Namesoace on Wed, 06 Jun 2007 10:54:26 GMT]]></title><description><![CDATA[<p>r0nny schrieb:</p>
<blockquote>
<p>es geht nich die klasse apfel ist nicht die gleiche klasse wie &lt;anon_namepsace_of_foofile&gt;::apfel</p>
</blockquote>
<p>Danke aber: ....<em>und wie kann ich das korregieren?</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299926</guid><dc:creator><![CDATA[Stonecold_Mario]]></dc:creator><pubDate>Wed, 06 Jun 2007 10:54:26 GMT</pubDate></item><item><title><![CDATA[Reply to Anonymer Namesoace on Wed, 06 Jun 2007 12:30:07 GMT]]></title><description><![CDATA[<p>Wie queer_boy schon sagte, lass den anonymen Namespace weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299987</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:30:07 GMT</pubDate></item><item><title><![CDATA[Reply to Anonymer Namesoace on Wed, 06 Jun 2007 12:48:07 GMT]]></title><description><![CDATA[<p>Schon geschehen, DANKE!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300008</guid><dc:creator><![CDATA[Stonecold_Mario]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:48:07 GMT</pubDate></item></channel></rss>