<?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[Weiß nicht wo der Fehler liegt...]]></title><description><![CDATA[<p>Hi @ all</p>
<p>hab ein Problem mit einem Funktionsausruf aus einer Klasse, weiß aber nicht woran es liegen könnte.<br />
Der Compiler gibt als Fehlermeldung immer nur das aus:<br />
In function <code>main': Zeile:8 undefined reference to</code>Feld::print_feld(char const*)</p>
<p>Hier ma die codes:<br />
main:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;data.h&quot;
using namespace std;

int main()
{
    Feld feld1;
    feld1.print_feld( &quot;blabla&quot; );
}
</code></pre>
<p>data.h:</p>
<pre><code>#include &lt;iostream&gt;
#ifndef _DATA_H_
#define _DATA_H_
using namespace std;

class Feld
{
    public:
    void print_feld ( const char* bla );
};

int print_feld ( const char* bla )
{
    cout &lt;&lt; bla;
};

#endif
</code></pre>
<p>Danke schonmal im vor raus für hilfreiche Tipps.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233915/weiß-nicht-wo-der-fehler-liegt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:50:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233915.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Feb 2009 21:21:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Weiß nicht wo der Fehler liegt... on Tue, 10 Feb 2009 21:21:21 GMT]]></title><description><![CDATA[<p>Hi @ all</p>
<p>hab ein Problem mit einem Funktionsausruf aus einer Klasse, weiß aber nicht woran es liegen könnte.<br />
Der Compiler gibt als Fehlermeldung immer nur das aus:<br />
In function <code>main': Zeile:8 undefined reference to</code>Feld::print_feld(char const*)</p>
<p>Hier ma die codes:<br />
main:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;data.h&quot;
using namespace std;

int main()
{
    Feld feld1;
    feld1.print_feld( &quot;blabla&quot; );
}
</code></pre>
<p>data.h:</p>
<pre><code>#include &lt;iostream&gt;
#ifndef _DATA_H_
#define _DATA_H_
using namespace std;

class Feld
{
    public:
    void print_feld ( const char* bla );
};

int print_feld ( const char* bla )
{
    cout &lt;&lt; bla;
};

#endif
</code></pre>
<p>Danke schonmal im vor raus für hilfreiche Tipps.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661413</guid><dc:creator><![CDATA[Duck93]]></dc:creator><pubDate>Tue, 10 Feb 2009 21:21:21 GMT</pubDate></item><item><title><![CDATA[Reply to Weiß nicht wo der Fehler liegt... on Tue, 10 Feb 2009 21:29:07 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void Feld::print_feld ( const char* bla )
{
    cout &lt;&lt; bla;
};
</code></pre>
<p>Fieser Fehler. <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>
<p>Du hast da keine Memberfunktion definiert, sondern eine freie Funktion. Dann hast du die Funktion auf das Objekt aufrufen wollen, der Linker konnte die aber nicht finden. Darum der Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661416</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 10 Feb 2009 21:29:07 GMT</pubDate></item><item><title><![CDATA[Reply to Weiß nicht wo der Fehler liegt... on Tue, 10 Feb 2009 21:30:55 GMT]]></title><description><![CDATA[<p>Du definierst in der Header-Datei nur eine globale Funktion <code>int print_feld(const char *bla)</code> . Was du aber eigentlich definieren willst, ist die Methode der Klasse <code>Feld</code> (und zwar mit Rückgabetyp <code>void</code> , nicht <code>int</code> ). Ein weiterer Fehler ist, dass du die Methoder in der Header-Datei definierst und nicht nur deklarierst. In eine Header-Datei gehören nur die Deklarationen. Die Definitionen gehören in eine eigene .cpp-Datei, also müsste das ganze wie folgt aussehen:</p>
<p>main.cpp:</p>
<pre><code class="language-cpp">#include &quot;data.h&quot;
using namespace std;

int main()
{
    Feld feld1;
    feld1.print_feld( &quot;blabla&quot; );
}
</code></pre>
<p>data.h (wieso nicht Feld.h? oder sind noch andere Klassen in der eigentlichen Datei?)</p>
<pre><code class="language-cpp">#ifndef _DATA_H_
#define _DATA_H_

class Feld
{
    public:
    void print_feld ( const char* bla );
};

#endif
</code></pre>
<p>data.cpp (beziehungsweise Feld.cpp)</p>
<pre><code class="language-cpp">#include &quot;data.h&quot;
#include &lt;iostream&gt;

using namespace std;

void Feld::print_feld ( const char* bla )
{
    cout &lt;&lt; bla;
};
</code></pre>
<p>Eine weitere Sache ist, dass man niemals using namespace std; (oder auch andere Namespaces) in Hearder-Dateien benutzen sollte. Sonst wird in jeder Datei, in der man den Header benutzt der gesamte Namensraum std importiert, was den Zweck von Namensräumen aufhebt.</p>
<p>Ich hoffe, dass hilft uns verwirrt nicht nur <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Sonst frag nochmal nach.</p>
<p>Felix</p>
<p>EDIT1: Courier für inline-Code<br />
EDIT2: Voraus wird mit einem r und zusammen geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661417</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Tue, 10 Feb 2009 21:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to Weiß nicht wo der Fehler liegt... on Tue, 10 Feb 2009 21:40:36 GMT]]></title><description><![CDATA[<p>Jetzt funktionierts, danke.</p>
<p>Heißt deshalb daten, weil ggf. noch mehr rein muss, weiß no ned genau</p>
<p>Eigentlich ist eine externe .cpp datei doch angeblich nur übersichtlicher,<br />
finds aba so auch ok</p>
<p>@ Phoemuex:<br />
versuch ma vor raus zusammen zu schreiben^^</p>
<p>mfg Duck93</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661421</guid><dc:creator><![CDATA[Duck93]]></dc:creator><pubDate>Tue, 10 Feb 2009 21:40:36 GMT</pubDate></item><item><title><![CDATA[Reply to Weiß nicht wo der Fehler liegt... on Tue, 10 Feb 2009 21:43:22 GMT]]></title><description><![CDATA[<p>Duck93 schrieb:</p>
<blockquote>
<p>versuch ma vor raus zusammen zu schreiben^^</p>
</blockquote>
<p>Das Wort gibts ja auch nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661422</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 10 Feb 2009 21:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to Weiß nicht wo der Fehler liegt... on Wed, 11 Feb 2009 00:33:12 GMT]]></title><description><![CDATA[<p>Duck93 schrieb:</p>
<blockquote>
<p>Heißt deshalb daten, weil ggf. noch mehr rein muss, weiß no ned genau</p>
<p>Eigentlich ist eine externe .cpp datei doch angeblich nur übersichtlicher,<br />
finds aba so auch ok</p>
</blockquote>
<p>Nicht nur &quot;angeblich&quot;. Wenn man für jede grössere Klasse eine eigenen eigenen Header und eine Implementierungsdatei hat, kann man neben der besseren Übersicht auch gezielt Dateien einbinden und Abhängigkeiten minimieren.</p>
<p>Duck93 schrieb:</p>
<blockquote>
<p>@ Phoemuex:<br />
versuch ma vor raus zusammen zu schreiben^^</p>
</blockquote>
<p>Er sagte ja mit einem 'r'...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661456</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 11 Feb 2009 00:33:12 GMT</pubDate></item></channel></rss>