<?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[ständige multiple defition]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Es wird mir ständig von meiner IDE zurück gegeben, dass ein Objekt bereits defintiert sein soll.<br />
Ich benutze QT als IDE (trotzdem schreibs ich mal hier rein, da es sich eigentlich um reine c++ syntax handelt und nicht wirklich mit dem QT Framework zu tun hat).</p>
<p>Ich habe 4 fileS (Sharing.h, thread.h, thread.cpp, main.cpp)</p>
<p>Sharing.h</p>
<pre><code class="language-cpp">#ifndef SHARING_H
#define SHARING_H

#include &lt;QMutex&gt;

QMutex mutex;

#endif // SHARING_H
</code></pre>
<p>thread.h</p>
<pre><code class="language-cpp">#ifndef THREAD_H
#define THREAD_H

#include &lt;QThread&gt;
#include &quot;Sharing.h&quot;
#include &lt;iostream&gt;

using namespace std;

class Thread : public QThread
{
public:
    Thread();

protected:
    void run();

private:
};

#endif // THREAD_H
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;QtCore/QCoreApplication&gt;

#include &quot;thread.h&quot;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Thread td1;
    Thread td2;

    return a.exec();
}
</code></pre>
<p>Thread.cpp</p>
<pre><code class="language-cpp">#include &quot;thread.h&quot;

Thread::Thread()
{
    Thread::run();
}

void Thread::run(){
    for(int Idx=0;Idx&lt;20;Idx++){
        mutex.lock();
        cout &lt;&lt; Idx &lt;&lt; endl;
        mutex.unlock();
    }
}
</code></pre>
<p>Die Fehlermeldung wird dadurch kommen, dass 2x Thread.h included wird.<br />
Jedoch begreiffe ich nicht warum das ISNDEF nicht greifft.</p>
<p>Wer kann mir helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273634/ständige-multiple-defition</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 01:14:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273634.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Sep 2010 09:11:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 09:11:36 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Es wird mir ständig von meiner IDE zurück gegeben, dass ein Objekt bereits defintiert sein soll.<br />
Ich benutze QT als IDE (trotzdem schreibs ich mal hier rein, da es sich eigentlich um reine c++ syntax handelt und nicht wirklich mit dem QT Framework zu tun hat).</p>
<p>Ich habe 4 fileS (Sharing.h, thread.h, thread.cpp, main.cpp)</p>
<p>Sharing.h</p>
<pre><code class="language-cpp">#ifndef SHARING_H
#define SHARING_H

#include &lt;QMutex&gt;

QMutex mutex;

#endif // SHARING_H
</code></pre>
<p>thread.h</p>
<pre><code class="language-cpp">#ifndef THREAD_H
#define THREAD_H

#include &lt;QThread&gt;
#include &quot;Sharing.h&quot;
#include &lt;iostream&gt;

using namespace std;

class Thread : public QThread
{
public:
    Thread();

protected:
    void run();

private:
};

#endif // THREAD_H
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &lt;QtCore/QCoreApplication&gt;

#include &quot;thread.h&quot;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Thread td1;
    Thread td2;

    return a.exec();
}
</code></pre>
<p>Thread.cpp</p>
<pre><code class="language-cpp">#include &quot;thread.h&quot;

Thread::Thread()
{
    Thread::run();
}

void Thread::run(){
    for(int Idx=0;Idx&lt;20;Idx++){
        mutex.lock();
        cout &lt;&lt; Idx &lt;&lt; endl;
        mutex.unlock();
    }
}
</code></pre>
<p>Die Fehlermeldung wird dadurch kommen, dass 2x Thread.h included wird.<br />
Jedoch begreiffe ich nicht warum das ISNDEF nicht greifft.</p>
<p>Wer kann mir helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950688</guid><dc:creator><![CDATA[definition]]></dc:creator><pubDate>Fri, 10 Sep 2010 09:11:36 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 09:15:16 GMT]]></title><description><![CDATA[<p>Wäre nicht schlecht wenn du jetzt vielleicht auch noch die Fehlermeldung postet <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>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950690</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Fri, 10 Sep 2010 09:15:16 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 09:17:23 GMT]]></title><description><![CDATA[<p>stimmt.. <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="😃"
    /></p>
<p>&quot;multiple definition of 'mutex'&quot; thread.cpp 3</p>
<p>Also beim Konstruktor von Thread (Thread::Thread()).<br />
Ergibt ja 0 Sinn. <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="😃"
    /></p>
<p>mutex ist bei Sharing.h als QMutex deklariert.</p>
<p>grz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950695</guid><dc:creator><![CDATA[definition]]></dc:creator><pubDate>Fri, 10 Sep 2010 09:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 09:42:18 GMT]]></title><description><![CDATA[<p>Du bist witzig. Ob dein mutex wohl einmal in jeder Übersetzungseinheit vorkommt, in der shared.h eingebunden wird? Wie soll das ifndef denn da greifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950723</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 10 Sep 2010 09:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 09:58:08 GMT]]></title><description><![CDATA[<p>@definition<br />
Headerguards wirkien sich lediglich auf die gleiche Übersetzungseinheit (.cpp) aus. Und in dem ersten Header hast du eine Definition, welche so von mehreren .cpp's implementiert wird und daher hast du eine Mehrfachdefinition.</p>
<p>Und anstatt jetzt in die ewige Singleton/extern Diskussion zu kommen erstell den Mutex lieber in der main und übergib ihn dann dem Thread. Das ist dann auch gerade viel flexibler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950733</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 10 Sep 2010 09:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 10:01:48 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Du bist witzig. Ob dein mutex wohl einmal in jeder Übersetzungseinheit vorkommt, in der shared.h eingebunden wird? Wie soll das ifndef denn da greifen?</p>
</blockquote>
<p>Stimmt, jetzt seh ichs auch <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="😃"
    /><br />
Ganz übersehen vor lauter Suche nach der Fehlermeldung, die ja jetzt doch nicht mal nötig gewesen wäre <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950734</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Fri, 10 Sep 2010 10:01:48 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 10:16:22 GMT]]></title><description><![CDATA[<p>definition schrieb:</p>
<blockquote>
<p>Es wird mir ständig von meiner IDE zurück gegeben, dass ein Objekt bereits defintiert sein soll.</p>
</blockquote>
<p>Sharing.h</p>
<pre><code class="language-cpp">#ifndef SHARING_H
#define SHARING_H

#include &lt;QMutex&gt;

extern QMutex mutex;

#endif // SHARING_H
</code></pre>
<p>Sharing.cpp</p>
<pre><code class="language-cpp">//...
QMutex mutex;
//...
</code></pre>
<p>Unabhängig davon das ich absolut kein Fan von globalen Variablen bin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950743</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 10 Sep 2010 10:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 10:47:25 GMT]]></title><description><![CDATA[<p>Könnt ihr mir kurz den Fix erklären? <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 />
Es funktioniert nun, danke <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="😉"
    /><br />
Jetzt muss ich nur noch das mit dem Mutex hinkriegen, aber das ist ja ein anderes Thema.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950764</guid><dc:creator><![CDATA[definition]]></dc:creator><pubDate>Fri, 10 Sep 2010 10:47:25 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 11:20:41 GMT]]></title><description><![CDATA[<p>definition schrieb:</p>
<blockquote>
<p>Könnt ihr mir kurz den Fix erklären? <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>Das ist ein Anfängerfehler. Das wurde hier bestimmt schon zig mal durchgekaut. Ein paar Stichwörter für Deine Recherche:</p>
<p>linkage (Bindung)<br />
translation unit (Übersetzungseinheit)<br />
one definition rule<br />
separate compilation (getrennte Übersetzung)</p>
<p>Versuche auch rauszubekommen, was genau &quot;Deklaration&quot; und &quot;Definition&quot; bedeutet. In der C++ Welt haben diese zwei Wörter eine feststehende Bedeutung, die man kennen sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950772</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 10 Sep 2010 11:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 11:08:49 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Das ist ein Anfängerfehler.</p>
</blockquote>
<p>Ist vor allem ein Fehler, bei dem es C++ dem Programmierer schwerer, als nötig macht. Das ist halt das Problem mit den historisch gewachsenen Strukturen von C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950781</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 10 Sep 2010 11:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 11:35:30 GMT]]></title><description><![CDATA[<p>ProgChild schrieb:</p>
<blockquote>
<p>Ist vor allem ein Fehler, bei dem es C++ dem Programmierer schwerer, als nötig macht. Das ist halt das Problem mit den historisch gewachsenen Strukturen von C++.</p>
</blockquote>
<p>Trotzdem sollte man sich vielleicht mit dem Konzept der Übersetzungseinheiten und der ODR befassen. Das ist zentral in C++, auch wenn es ursprünglich von C kommt.</p>
<p>Darüber hinaus muss man bei globalen Variablen sowieso überlegen, ob es nicht eine bessere Möglichkeit gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950799</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 10 Sep 2010 11:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 12:15:24 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Trotzdem sollte man sich vielleicht mit dem Konzept der Übersetzungseinheiten und der ODR befassen. Das ist zentral in C++, auch wenn es ursprünglich von C kommt.</p>
</blockquote>
<p>Warum trotzdem? Natürlich muss man das wissen, wenn man C++ beherrschen will. Nur braucht man sich nicht blöd vorkommen, wenn man dieses Verhalten nicht sofort versteht. IMHO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950828</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 10 Sep 2010 12:15:24 GMT</pubDate></item><item><title><![CDATA[Reply to ständige multiple defition on Fri, 10 Sep 2010 12:57:17 GMT]]></title><description><![CDATA[<p>ProgChild schrieb:</p>
<blockquote>
<p>Warum trotzdem?</p>
</blockquote>
<p>Naja, weil ich es für eine schlechte Entschuldigung halte, zu sagen: &quot;Das ist ein historisches C++-Problem&quot;, nur weil man sich nicht damit befasst hat. Aber es ist natürlich wie du sagst ein Grund, warum man unter Umständen etwas länger braucht und sich ausführlicher mit dem Thema auseinandersetzen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950869</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 10 Sep 2010 12:57:17 GMT</pubDate></item></channel></rss>