<?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[Linker behauptet Methode nicht definiert :-&#x2F;]]></title><description><![CDATA[<p>Ich verwende in einer Header-Datei einen Typ, normalerweise wird der auch in der Header-Datei definiert, aber auf Wunsch kann das auch vom User übernommen werden, so in etwa:</p>
<pre><code class="language-cpp">// Header
#ifndef DEF_OWN_TYPE
    typedef int type;
#else
    typedef ::type type;
#endif

    class blubb
    {
        void method (type var);
    };

// Cpp
void blubb::method (type var)
{
    do_sth(var);
}
</code></pre>
<p>Das geht aber nur solange gut, solange der interne Typ verwendet wird. Sobald:</p>
<pre><code class="language-cpp">// Main
#define DEF_OWN_TYPE
enum type
{
    const1,
    const2
};
#include &quot;header.h&quot;

...

blubb test;
test.method(const1);
</code></pre>
<p>eingesetzt wird bekomme ich einen Linkerfeher. Der Linker behauptet, die Methode method(type var) wäre nirgends definiert. Warum?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/118462/linker-behauptet-methode-nicht-definiert</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 11:22:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118462.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 20 Aug 2005 14:45:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linker behauptet Methode nicht definiert :-&#x2F; on Sat, 20 Aug 2005 14:45:11 GMT]]></title><description><![CDATA[<p>Ich verwende in einer Header-Datei einen Typ, normalerweise wird der auch in der Header-Datei definiert, aber auf Wunsch kann das auch vom User übernommen werden, so in etwa:</p>
<pre><code class="language-cpp">// Header
#ifndef DEF_OWN_TYPE
    typedef int type;
#else
    typedef ::type type;
#endif

    class blubb
    {
        void method (type var);
    };

// Cpp
void blubb::method (type var)
{
    do_sth(var);
}
</code></pre>
<p>Das geht aber nur solange gut, solange der interne Typ verwendet wird. Sobald:</p>
<pre><code class="language-cpp">// Main
#define DEF_OWN_TYPE
enum type
{
    const1,
    const2
};
#include &quot;header.h&quot;

...

blubb test;
test.method(const1);
</code></pre>
<p>eingesetzt wird bekomme ich einen Linkerfeher. Der Linker behauptet, die Methode method(type var) wäre nirgends definiert. Warum?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854974</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 20 Aug 2005 14:45:11 GMT</pubDate></item><item><title><![CDATA[Reply to Linker behauptet Methode nicht definiert :-&#x2F; on Sat, 20 Aug 2005 15:16:00 GMT]]></title><description><![CDATA[<p>Zum Übersetzungszeitpunkt von</p>
<pre><code class="language-cpp">void blubb::method (type var)
{
    do_sth(var);
}
</code></pre>
<p>ist ja der eigentliche gewünschte Typ ja gar nicht bekannt.</p>
<p>Du hast doch 2 Compile Vorgänge:<br />
blubb.cpp (inkludiert blubb.h mit irgendeinem Typ)<br />
main.cpp (inkludiert blubb.h definiert aber den Typ anders)</p>
<p>In blubb.o ist die von main.cpp geforderte Methode nicht vorhanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854997</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sat, 20 Aug 2005 15:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to Linker behauptet Methode nicht definiert :-&#x2F; on Sat, 20 Aug 2005 15:47:20 GMT]]></title><description><![CDATA[<p>Gibts dafür irgendwie Abhilfe?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855016</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 20 Aug 2005 15:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to Linker behauptet Methode nicht definiert :-&#x2F; on Sat, 20 Aug 2005 15:56:13 GMT]]></title><description><![CDATA[<p>So wie Du es versuchst, wird es nicht gehen. Du musst in jedem Fall beim Übersetzen von blubb.o bereits den richtigen Typ kennen.<br />
Eine Möglichkeit wäre es den &quot;benutzerdefinierten Typ&quot; in einer andere Include-Datei (vom Nutzer veränderbare Datei) zu packen, die von dem Header blubb.h inkludiert wird.</p>
<p>Aber warum benutzt Du keine Templates?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855020</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sat, 20 Aug 2005 15:56:13 GMT</pubDate></item><item><title><![CDATA[Reply to Linker behauptet Methode nicht definiert :-&#x2F; on Sun, 21 Aug 2005 15:15:59 GMT]]></title><description><![CDATA[<p>Weil das nicht gerade als Template-Parameter passt, werde mir einfach eine andere Methode überlegen das Anzugehen. Im Notfall halt auch mit Template.</p>
<p>Danke auf jeden Fall.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855468</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 15:15:59 GMT</pubDate></item></channel></rss>