<?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[undefined reference trotz definition]]></title><description><![CDATA[<p>hi, sry, eigentlich dachte ich, den Fehler finde ich selbst, aber ich versteh einfach nicht, was daran falsch sein soll:</p>
<p>main:</p>
<pre><code class="language-cpp">IP ip(1,1,1,1);
	IP ip2(1,1,1,1);
	if(ip == ip2) {cout&lt;&lt;&quot;KK&quot;&lt;&lt;endl; }
</code></pre>
<p>IP.h</p>
<pre><code class="language-cpp">namespace Rnet
{
	...
	class IP
	{
	private:
                ...
	public:
                ...
	   	bool operator==(const IP&amp; _ip) const;
</code></pre>
<p>Und in der IP.cpp:</p>
<pre><code class="language-cpp">inline Rnet::IP::IP(unsigned short _a,unsigned short _b,unsigned short _c,
				   	unsigned short _d)
{
</code></pre>
<p>Ist da ein Fehler drin? Danke Leute, bin echt schon am verzweifeln ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146459/undefined-reference-trotz-definition</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 16:28:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146459.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 May 2006 05:05:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:05:54 GMT]]></title><description><![CDATA[<p>hi, sry, eigentlich dachte ich, den Fehler finde ich selbst, aber ich versteh einfach nicht, was daran falsch sein soll:</p>
<p>main:</p>
<pre><code class="language-cpp">IP ip(1,1,1,1);
	IP ip2(1,1,1,1);
	if(ip == ip2) {cout&lt;&lt;&quot;KK&quot;&lt;&lt;endl; }
</code></pre>
<p>IP.h</p>
<pre><code class="language-cpp">namespace Rnet
{
	...
	class IP
	{
	private:
                ...
	public:
                ...
	   	bool operator==(const IP&amp; _ip) const;
</code></pre>
<p>Und in der IP.cpp:</p>
<pre><code class="language-cpp">inline Rnet::IP::IP(unsigned short _a,unsigned short _b,unsigned short _c,
				   	unsigned short _d)
{
</code></pre>
<p>Ist da ein Fehler drin? Danke Leute, bin echt schon am verzweifeln ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053075</guid><dc:creator><![CDATA[MaxDemian]]></dc:creator><pubDate>Mon, 08 May 2006 05:05:54 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:23:58 GMT]]></title><description><![CDATA[<p>ist der namespace in main geöffnet ?<br />
Sonst müsste es RNet::IP heissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053076</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Mon, 08 May 2006 05:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:26:59 GMT]]></title><description><![CDATA[<p>nee, ja ist geöffnet. hier nochmal der genaue Fehler:</p>
<blockquote>
<p>undefined reference to `Rnet::IP::operator==(Rnet::IP const&amp;) const'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1053077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053077</guid><dc:creator><![CDATA[MaxDemian]]></dc:creator><pubDate>Mon, 08 May 2006 05:26:59 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:36:31 GMT]]></title><description><![CDATA[<p>inline-Funktionen in Cpp-Files zu versenken ist ein bißchen ungünstig....</p>
<p>Ansonsten, wo ist deine Operator-Funktion in der Cpp-Datei?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053080</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Mon, 08 May 2006 05:36:31 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:40:37 GMT]]></title><description><![CDATA[<p>Mathias schrieb:</p>
<blockquote>
<p>inline-Funktionen in Cpp-Files zu versenken ist ein bißchen ungünstig....</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053084</guid><dc:creator><![CDATA[Redhead]]></dc:creator><pubDate>Mon, 08 May 2006 05:40:37 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:49:37 GMT]]></title><description><![CDATA[<p>MaxDemian schrieb:</p>
<blockquote>
<p>nee, ja ist geöffnet. hier nochmal der genaue Fehler:</p>
<blockquote>
<p>undefined reference to `Rnet::IP::operator==(Rnet::IP const&amp;) const'</p>
</blockquote>
</blockquote>
<p>Der Compiler sagt's doch recht deutlich, er kann die Implementierung Deines op== nicht finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053087</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Mon, 08 May 2006 05:49:37 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:55:47 GMT]]></title><description><![CDATA[<p>inline besagt, dass der Compiler den Funktionsaufruf wenn er lust dazu hat durch den Source-Code der Funktion ersetzen darf.<br />
Steht die Funktion innerhalb einer Cpp-Datei kann der Compiler dies jedoch nur in der Cpp-Datei selbst, da ihm der Source-Code beim Übersetzen von anderen Cpp-Datien gar nicht bekannt ist (werden schließlich nur die Header-Dateien inkludiert). Die Anweisung inline macht daher im Allgemeinen nur bei Funktionen einen Sinn, deren Implementierung sich in der Header-Datei befinden.<br />
<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/1053088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053088</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Mon, 08 May 2006 05:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 05:59:46 GMT]]></title><description><![CDATA[<p>Mathias schrieb:</p>
<blockquote>
<p>inline besagt, dass der Compiler den Funktionsaufruf wenn er lust dazu hat durch den Source-Code der Funktion ersetzen darf.</p>
</blockquote>
<p>Nein, das tut es nicht. In C++ gilt die ODR (one definition rule), es darf zu jeder Entität nur genau eine Definition geben. inline ändert diese Regel so ab, daß die Definition beliebig oft vorhanden sein darf, solange sie Token für Token identisch ist.</p>
<blockquote>
<p>Steht die Funktion innerhalb einer Cpp-Datei kann der Compiler dies jedoch nur in der Cpp-Datei selbst, da ihm der Source-Code beim Übersetzen von anderen Cpp-Datien gar nicht bekannt ist (werden schließlich nur die Header-Dateien inkludiert). Die Anweisung inline macht daher im Allgemeinen nur bei Funktionen einen Sinn, deren Implementierung sich in der Header-Datei befinden.<br />
<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>
</blockquote>
<p>Der letzte Satz stimmt. Allerdings können inzwischen einige Compiler auch über die Übersetzungseinheiten hinweg optimieren (VC zum Beispiel), der kann dann trotzdem noch inlinen. Dabei ist er jedoch von dem &quot;inline&quot; völlig unabhängig, da es wie gesagt in C++ eine etwas andere Bedeutung hat, als so mancher erwartet.</p>
<p>MfG Jester</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053089</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Mon, 08 May 2006 05:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 06:18:41 GMT]]></title><description><![CDATA[<p>ja, es hat daran gelegen das die inline definition nit in der header-datei war... Da ist der Compiler aber pingelig ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053101</guid><dc:creator><![CDATA[MaxDemian]]></dc:creator><pubDate>Mon, 08 May 2006 06:18:41 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 06:47:55 GMT]]></title><description><![CDATA[<p>Ups stimmt. inline sagt: Definition darf beliebig oft auftauchen, aber in jeder ÜE mind. einmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053112</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Mon, 08 May 2006 06:47:55 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference trotz definition on Mon, 08 May 2006 09:49:27 GMT]]></title><description><![CDATA[<p>An die Aufhebung der ODR hab ich gar nicht gedacht, bin vielleicht doch schon etwas programmiergeschädigt. <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="🙂"
    /><br />
Ist an der Stelle allerdings die logische Konsequenz, da die Implementierung einer Inline-Funktion im Header steht, wodurch die ODR durch mehrfaches inkludieren einer Header-Datei verletzt wird...</p>
<p>Das ist allerdings meiner Meinung nach nicht die Funktionalität von inline, sondern eine Notwendigkeit um die Funktionalität von inline umsetzen zu können. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053228</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Mon, 08 May 2006 09:49:27 GMT</pubDate></item></channel></rss>