<?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[Objekt doppelt definiert ?????]]></title><description><![CDATA[<p>Hallo,<br />
ich habe hier ein kleines Problem mit meinen Klassen. Ich hoffe Ihr könnt helfen. Ich habe folgede Dateien<br />
header:<br />
mywindow.h<br />
config.h</p>
<p>source:<br />
main.cpp<br />
mywindow.cpp<br />
config.cpp</p>
<p>das ganze ist ein VC2008 Projekt. Hier mal die Code Schnippsel.</p>
<pre><code>main.cpp
#include &lt;QApplication&gt;
#include &quot;mywindow.h&quot;
#include &quot;config.h&quot;

using namespace std;

int main(int argc, char *argv[])
{
	config  conf;

	QApplication app(argc, argv);

	MyWindow* window = new MyWindow;
	window -&gt; show();
	return app.exec();
}
</code></pre>
<pre><code>mywindow.cpp
#include &quot;mywindow.h&quot;

using namespace std;

MyWindow::MyWindow(QWidget *parent) : QWidget(parent)
{
}

void MyWindow::setText()
{
}

void MyWindow::curItem(QListWidgetItem *item) 
{
}
</code></pre>
<pre><code>mywindow.h
#ifndef MY_WINDOW_H
#define MY_WINDOW_H

#include &lt;QObject&gt;
#include &lt;QVBoxLayout&gt;
#include &lt;QPushButton&gt;
#include &lt;QLabel&gt;
#include &lt;QWidget&gt;
#include &lt;QListWidget&gt;
#include &lt;QMessageBox&gt;
#include &lt;QtGui&gt;
#include &lt;QDialog&gt;
#include &lt;QMap&gt;

using namespace std;

class MyWindow : public QWidget 
{
};
#endif
</code></pre>
<pre><code>config.pp
#include &quot;config.h&quot;

using namespace std;

config::config()
{
}	

int config::readConfig(string filename)
{
}

void config::showConfig()
{
}
</code></pre>
<pre><code>config.h
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string&gt;
#include &lt;list&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/stat.h&gt;

using namespace std;
class config
{
	config();
	~config();
};

config::~config() {}
</code></pre>
<pre><code>Fehlermeldung
1&gt;main.obj : error LNK2005: &quot;public: __thiscall config::~config(void)&quot; (??1config@@QAE@XZ) ist bereits in config.obj definiert.
1&gt;debug\dML3Gui.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
</code></pre>
<p>Was die Fehlermeldung aussagt, ist mir klar, aber was ich dagegen mache kann nicht. Hoffe Ihr könnt mir helfen.</p>
<p>Vielen Dank.<br />
Grüße<br />
tYREL</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234608/objekt-doppelt-definiert</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 08:45:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234608.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Feb 2009 21:03:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Thu, 19 Feb 2009 21:03:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe hier ein kleines Problem mit meinen Klassen. Ich hoffe Ihr könnt helfen. Ich habe folgede Dateien<br />
header:<br />
mywindow.h<br />
config.h</p>
<p>source:<br />
main.cpp<br />
mywindow.cpp<br />
config.cpp</p>
<p>das ganze ist ein VC2008 Projekt. Hier mal die Code Schnippsel.</p>
<pre><code>main.cpp
#include &lt;QApplication&gt;
#include &quot;mywindow.h&quot;
#include &quot;config.h&quot;

using namespace std;

int main(int argc, char *argv[])
{
	config  conf;

	QApplication app(argc, argv);

	MyWindow* window = new MyWindow;
	window -&gt; show();
	return app.exec();
}
</code></pre>
<pre><code>mywindow.cpp
#include &quot;mywindow.h&quot;

using namespace std;

MyWindow::MyWindow(QWidget *parent) : QWidget(parent)
{
}

void MyWindow::setText()
{
}

void MyWindow::curItem(QListWidgetItem *item) 
{
}
</code></pre>
<pre><code>mywindow.h
#ifndef MY_WINDOW_H
#define MY_WINDOW_H

#include &lt;QObject&gt;
#include &lt;QVBoxLayout&gt;
#include &lt;QPushButton&gt;
#include &lt;QLabel&gt;
#include &lt;QWidget&gt;
#include &lt;QListWidget&gt;
#include &lt;QMessageBox&gt;
#include &lt;QtGui&gt;
#include &lt;QDialog&gt;
#include &lt;QMap&gt;

using namespace std;

class MyWindow : public QWidget 
{
};
#endif
</code></pre>
<pre><code>config.pp
#include &quot;config.h&quot;

using namespace std;

config::config()
{
}	

int config::readConfig(string filename)
{
}

void config::showConfig()
{
}
</code></pre>
<pre><code>config.h
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string&gt;
#include &lt;list&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/stat.h&gt;

using namespace std;
class config
{
	config();
	~config();
};

config::~config() {}
</code></pre>
<pre><code>Fehlermeldung
1&gt;main.obj : error LNK2005: &quot;public: __thiscall config::~config(void)&quot; (??1config@@QAE@XZ) ist bereits in config.obj definiert.
1&gt;debug\dML3Gui.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
</code></pre>
<p>Was die Fehlermeldung aussagt, ist mir klar, aber was ich dagegen mache kann nicht. Hoffe Ihr könnt mir helfen.</p>
<p>Vielen Dank.<br />
Grüße<br />
tYREL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666724</guid><dc:creator><![CDATA[tyrel]]></dc:creator><pubDate>Thu, 19 Feb 2009 21:03:06 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Thu, 19 Feb 2009 21:08:45 GMT]]></title><description><![CDATA[<p>Informier dich über Include Guards, die verhindern mehrfache Inkludierung im selben Modul.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666727</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 19 Feb 2009 21:08:45 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Thu, 19 Feb 2009 21:09:42 GMT]]></title><description><![CDATA[<p>Include Guards vergessen?</p>
<p>EDIT: Hmm, jetzt warst du schon wieder schneller. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1666728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666728</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 19 Feb 2009 21:09:42 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Thu, 19 Feb 2009 21:27:40 GMT]]></title><description><![CDATA[<p>In MSVC++ reicht ein</p>
<pre><code class="language-cpp">#pragma once
</code></pre>
<p>am Anfang des Headers. Aber das ist natürlich nicht ganz portabel, du kannst deshalb auch die klassischen Include-Guards verwenden:</p>
<pre><code class="language-cpp">#ifndef INCLUDE_GUARD
#define INCLUDE_GUARD

// Code

#endif
</code></pre>
<p>Bei Google solltest du dazu genügend Informationen finden.</p>
<p>_matze schrieb:</p>
<blockquote>
<p>EDIT: Hmm, jetzt warst du schon wieder schneller. <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>
</blockquote>
<p>Heute scheint irgendwie mein Tag zu sein... <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1666736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666736</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 19 Feb 2009 21:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Thu, 19 Feb 2009 21:33:41 GMT]]></title><description><![CDATA[<p>Das geht auch in GCC. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1666743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666743</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 19 Feb 2009 21:33:41 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Thu, 19 Feb 2009 21:57:38 GMT]]></title><description><![CDATA[<p>Ihr Experten, das ist ein Linkerfehler.</p>
<p>Der Grund ist, dass der Destruktor von config im Header definiert ist. Wird dieser Header in mehreren Übersetzungseinheiten verwendet, gibt es somit eine doppelte Definition. Lösen kann man das Problem auf zwei Arten:</p>
<ol>
<li>Man definiert den Destruktor im cpp-File</li>
<li>Man definiert ihn <code>inline</code></li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1666763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666763</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 19 Feb 2009 21:57:38 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Thu, 19 Feb 2009 22:07:45 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Heute scheint irgendwie mein Tag zu sein... <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>
</blockquote>
<p>Wohl doch nicht... und meiner auch nicht... <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1666768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666768</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 19 Feb 2009 22:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Fri, 20 Feb 2009 06:30:36 GMT]]></title><description><![CDATA[<p>Vielen Dank Euch allen. Ich werde mal sehen was ich alles zu Include Guards finde und mich da mal etwas einlesen. Vielen Dank auch mal für den Tipp mit<br />
dem Destruktor. Ich werde das heute mal testen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1666823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666823</guid><dc:creator><![CDATA[tyrel]]></dc:creator><pubDate>Fri, 20 Feb 2009 06:30:36 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Fri, 20 Feb 2009 07:09:24 GMT]]></title><description><![CDATA[<p>Bashar hat natürlich Recht. Pack den Destruktor in deine cpp-Datei.</p>
<p>Du hast Include Guards selbst schon eingesetzt. Sowas hier sind Include Guards.</p>
<p>tyrel schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#ifndef MY_WINDOW_H
#define MY_WINDOW_H
//...
#endif
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1666834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666834</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 20 Feb 2009 07:09:24 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Fri, 20 Feb 2009 08:46:59 GMT]]></title><description><![CDATA[<p>Vielleicht sollte man auch darauf hinweisen, dass ein <strong>using namespace std;</strong> im Header eine sehr schlechte Idee ist.<br />
Die Erklärung dazu sollte eigentlich auch mal in die FAQ.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666873</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 20 Feb 2009 08:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Fri, 20 Feb 2009 12:37:26 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Wohl doch nicht... und meiner auch nicht... <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>
</blockquote>
<p>Naja, ich hab das auch nicht unbedingt nur wegen dieses Threads gesagt, der Tag ist auch sonst gut gelaufen. <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>Bashar schrieb:</p>
<blockquote>
<p>Ihr Experten, das ist ein Linkerfehler.</p>
</blockquote>
<p>Jeder irrt sich mal, oder? Ich habe halt gesehen, dass in config.h keine Guards drin sind. Vielleicht hätte ich mir den Post länger anschauen sollen. Das hätte ich auch gemacht, wenn weniger Code da gestanden hätte... <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>
<p>Um doch noch was beizutragen:</p>
<pre><code class="language-cpp">int config::readConfig(string filename)
</code></pre>
<p>Hier sollte besser eine Übergabe per Const-Referenz stattfinden.</p>
<pre><code class="language-cpp">MyWindow* window = new MyWindow;
</code></pre>
<p>Die Zeile verursacht ein Memory Leak. Speicher, den man mit <code>new</code> anfordert, muss mit <code>delete</code> wieder freigegeben werden! Auch wenn das Programm beendet wird, besteht keine Garantie, dass das Betriebssystem das für einen tut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667025</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 20 Feb 2009 12:37:26 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Fri, 20 Feb 2009 13:09:06 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Bashar schrieb:</p>
<blockquote>
<p>Ihr Experten, das ist ein Linkerfehler.</p>
</blockquote>
<p>Jeder irrt sich mal, oder? Ich habe halt gesehen, dass in config.h keine Guards drin sind.</p>
</blockquote>
<p>Und andere sehen bei egal welcher Frage zuerst, dass da void main oder iostream.h steht. Mich stört es einfach, wenn hier wie so oft reflexartig aus der Hüfte geschossen wird, ohne sich das gepostete Problem überhaupt anzuschauen. Das war hier sehr schön demonstriert, weil gleich mehrere auf die gleiche Weise reingefallen sind.</p>
<blockquote>
<p>Vielleicht hätte ich mir den Post länger anschauen sollen. Das hätte ich auch gemacht, wenn weniger Code da gestanden hätte... <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>Die Fehlermeldung hätte doch gereicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667037</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 20 Feb 2009 13:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Fri, 20 Feb 2009 13:21:08 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>[Und andere sehen bei egal welcher Frage zuerst, dass da void main oder iostream.h steht. Mich stört es einfach, wenn hier wie so oft reflexartig aus der Hüfte geschossen wird, ohne sich das gepostete Problem überhaupt anzuschauen. Das war hier sehr schön demonstriert, weil gleich mehrere auf die gleiche Weise reingefallen sind.</p>
</blockquote>
<p>Ja, das kann ich gut verstehen. Hier war es so, dass ich die fehlenden Guards sah und dann gar nicht viel überlegte. Zugegeben, das war vielleicht nicht so gut, ich versuche mich in Zukunft mehr darauf zu achten.</p>
<p>Meistens nehme ich mir aber Zeit und gebe mir Mühe bei der Antwort. Ich selber habe zumindest das Gefühl, dass meine Beiträge einigen Leuten helfen. Dann kann es von mir aus gesehen auch mal passieren, dass man ein Problem falsch einschätzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667047</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 20 Feb 2009 13:21:08 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt doppelt definiert ????? on Fri, 20 Feb 2009 16:20:37 GMT]]></title><description><![CDATA[<p>ich möchte als Verursacher auch noch Stellung beziehen. Ich bin Neuling was C++ angeht. Grundkenntnisse ja und ein gefährliches Halbwissen. Ich fand alle Beitrag hilfreich, weil zum einen, das mit den Include Guards hatte ich ja in meiner eigenen Header Datei nicht drin und zu einem sauber definierten Code gehört das wohl (hab ich gelernt <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="😉"
    /> ): Zum dem wurde mir geholfen in Form der richtigen Lösung. Ich habe den Destruktor in die .cpp genommen und es rennt jetzt (zu mindest diese Problem habe ich gelöst) und ich habe wieder was gelernt. Auch die weiteren Post waren hilfreich, ich habe zwar nicht alles verstanden, aber das liegt an mir und meinem Halbwissen <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="😉"
    /> ich habe zu Anregungen bekommen was man besser machen kann/soll, mehr kann ich nicht verlangen.</p>
<p>Daher ein großes Lob an die Poster, welche sich bemüht haben mir zu helfen. Ja ihr habt mir geholfen und ihr macht hier einen super Job. Danke. <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>
<p>tYREL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667172</guid><dc:creator><![CDATA[tyrel]]></dc:creator><pubDate>Fri, 20 Feb 2009 16:20:37 GMT</pubDate></item></channel></rss>