<?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 Fehler]]></title><description><![CDATA[<p>Guten Abend Gemeinde,</p>
<p>Ich sitze schon eine weile vor dieser Fehlermeldung:</p>
<pre><code>main.obj : error LNK2005: &quot;char * * partei&quot; (?partei@@3PAPADA) already defined in DHundt.obj

fatal error LNK1169: one or more multiply defined symbols found
</code></pre>
<p>Er meckert wahrscheinlich an diesem hier:<br />
char *partei[] = { &quot;A&quot;, &quot;B&quot;, &quot;C&quot;, &quot;D&quot;, &quot;E&quot; };</p>
<p>weil, wenn ich den pointer array nicht variable initialiesiere - funktioniert's.</p>
<p>Wie löse ich das Problem?</p>
<p>Danke für eure Antworten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Erstellt mit Visual C++ 2008 Express Edition (daher &quot;#pragma once&quot;)</p>
<p>Party.h</p>
<pre><code class="language-cpp">#pragma once
#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;cctype&gt;
using namespace std;

class Party
{
private:
	char *m_name;
	float m_stimmen,
	m_geteiltStim,
	m_teiler;
	int m_sitze;
public:
	Party(void){} // default
	~Party(void){} //dekonstruktor
	//Monster-Konstr
	Party(char *name, float stimmen) : m_name(new char[strlen(name)+1]),
	m_stimmen(stimmen),
	m_geteiltStim(stimmen),
	m_sitze(0), m_teiler(1) {
	strcpy(m_name, name);}
	//Methoden
	char *getName(void) { return m_name; }
	float getGesamtStim(void) { return m_stimmen; }
	float getGeteiltStim(void) { return m_geteiltStim; }
	void setSitz(void) { m_sitze++; m_geteiltStim = m_stimmen/++m_teiler; }
	int getSitze(void) { return m_sitze; }
};
</code></pre>
<p><a href="//DHundt.cpp">//DHundt.cpp</a></p>
<pre><code class="language-cpp">#pragma once
#include &quot;Party.h&quot;

char *partei[] = { &quot;A&quot;, &quot;B&quot;, &quot;C&quot;, &quot;D&quot;, &quot;E&quot; };
const int parteiZahl = sizeof(partei)/sizeof(partei[0]);

class DHundt: public Party
{
private:
	Party *m_partei[parteiZahl];
	int m_gesamtSitze;
	float m_gesamtStimmen;
public:
	DHundt(void);
	~DHundt(void);
	DHundt(int sitzZahl) : m_gesamtSitze(sitzZahl), m_gesamtStimmen(0)
	{
		float stimmen;
		cout &lt;&lt; &quot;Geben Sie die abgegebenen Stimmen pro Partei ein&quot; &lt;&lt; endl;
		for (int i=0; i&lt;parteiZahl; i++) 
		{
			cout &lt;&lt; partei[i] &lt;&lt; &quot;: &quot;;
			cin &gt;&gt; stimmen; 
			m_partei[i] = new Party(partei[i], stimmen);
			m_gesamtStimmen += stimmen;
		}
	}
	void berechne(void);
	void gibAus(void);
};
</code></pre>
<p><a href="//DHundt.h">//DHundt.h</a></p>
<pre><code class="language-cpp">#include &quot;DHundt.h&quot;

DHundt::DHundt(void){}
DHundt::~DHundt(void){}
void DHundt::berechne(void)
 {
	char zeich;
	cout &lt;&lt; endl &lt;&lt; &quot;Soll jede einzelne Sitzzuteilung ausgegeben werden (j/n) ? &quot;;
	cin.get(zeich); 
	bool detailAusgabe = tolower(zeich) == 'j'; cout &lt;&lt; endl;
	int vergebeneSitze = 0;
	while (vergebeneSitze &lt; m_gesamtSitze) 
	{
		int max = 0;
		for (int i=1; i&lt;parteiZahl; i++)
			if (m_partei[i]-&gt;getGeteiltStim() &gt; m_partei[max]-&gt;getGeteiltStim())
			max = i;
			++vergebeneSitze;
			if (detailAusgabe)
			cout &lt;&lt; endl &lt;&lt; &quot;...Sitz &quot; &lt;&lt; vergebeneSitze
			&lt;&lt; &quot; geht an: &quot; &lt;&lt; m_partei[max]-&gt;getName() &lt;&lt; &quot; (&quot;
			&lt;&lt; setprecision(0) &lt;&lt; setiosflags(ios::fixed)
			&lt;&lt; m_partei[max]-&gt;getGeteiltStim() &lt;&lt; &quot;)&quot;;
		m_partei[max]-&gt;setSitz();
	}
}
void DHundt::gibAus(void)
{
	cout &lt;&lt; endl &lt;&lt; endl &lt;&lt; &quot;Sitzverteilung:&quot; &lt;&lt; endl &lt;&lt; endl
	&lt;&lt; setw(13) &lt;&lt; &quot;Partei | &quot; &lt;&lt; setw(8) &lt;&lt; &quot;Sitze | &quot;
	&lt;&lt; setw(23) &lt;&lt; &quot;Prozent (Sitze) | &quot;
	&lt;&lt; setw(22) &lt;&lt; &quot;Prozent (Stimmen) |&quot; &lt;&lt; endl
	&lt;&lt; &quot;-----------+-------+----------------------+&quot;
	&quot;----------------------|&quot; &lt;&lt; endl;
	for (int i=0; i&lt;parteiZahl; i++)
	{
		cout &lt;&lt; setw(10) &lt;&lt; m_partei[i]-&gt;getName() &lt;&lt; &quot; | &quot;
		&lt;&lt; setw(5) &lt;&lt; m_partei[i]-&gt;getSitze() &lt;&lt; &quot; | &quot;
		&lt;&lt; setw(20) &lt;&lt; setprecision(2)
		&lt;&lt; (float)m_partei[i]-&gt;getSitze()/(float)m_gesamtSitze*100
		&lt;&lt; &quot; | &quot; &lt;&lt; setw(20) &lt;&lt; setprecision(2)
		&lt;&lt; m_partei[i]-&gt;getGesamtStim()/m_gesamtStimmen*100 &lt;&lt;&quot; | &quot; &lt;&lt;endl;
	}
}
</code></pre>
<pre><code class="language-cpp">#include &quot;DHundt.h&quot;

int main(void) 
{
	int AnzahlSitze;
	cout &lt;&lt; &quot;Wieviele Sitze sind zu vergeben: &quot;; 
	cin &gt;&gt; AnzahlSitze;
	DHundt sitzVerteilung(AnzahlSitze);
	sitzVerteilung.berechne();
	sitzVerteilung.gibAus();
        system(&quot;pause&quot;);
        return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/252944/linker-fehler</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 09:20:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252944.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Oct 2009 19:01:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linker Fehler on Mon, 26 Oct 2009 19:44:48 GMT]]></title><description><![CDATA[<p>Guten Abend Gemeinde,</p>
<p>Ich sitze schon eine weile vor dieser Fehlermeldung:</p>
<pre><code>main.obj : error LNK2005: &quot;char * * partei&quot; (?partei@@3PAPADA) already defined in DHundt.obj

fatal error LNK1169: one or more multiply defined symbols found
</code></pre>
<p>Er meckert wahrscheinlich an diesem hier:<br />
char *partei[] = { &quot;A&quot;, &quot;B&quot;, &quot;C&quot;, &quot;D&quot;, &quot;E&quot; };</p>
<p>weil, wenn ich den pointer array nicht variable initialiesiere - funktioniert's.</p>
<p>Wie löse ich das Problem?</p>
<p>Danke für eure Antworten. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Erstellt mit Visual C++ 2008 Express Edition (daher &quot;#pragma once&quot;)</p>
<p>Party.h</p>
<pre><code class="language-cpp">#pragma once
#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;cctype&gt;
using namespace std;

class Party
{
private:
	char *m_name;
	float m_stimmen,
	m_geteiltStim,
	m_teiler;
	int m_sitze;
public:
	Party(void){} // default
	~Party(void){} //dekonstruktor
	//Monster-Konstr
	Party(char *name, float stimmen) : m_name(new char[strlen(name)+1]),
	m_stimmen(stimmen),
	m_geteiltStim(stimmen),
	m_sitze(0), m_teiler(1) {
	strcpy(m_name, name);}
	//Methoden
	char *getName(void) { return m_name; }
	float getGesamtStim(void) { return m_stimmen; }
	float getGeteiltStim(void) { return m_geteiltStim; }
	void setSitz(void) { m_sitze++; m_geteiltStim = m_stimmen/++m_teiler; }
	int getSitze(void) { return m_sitze; }
};
</code></pre>
<p><a href="//DHundt.cpp">//DHundt.cpp</a></p>
<pre><code class="language-cpp">#pragma once
#include &quot;Party.h&quot;

char *partei[] = { &quot;A&quot;, &quot;B&quot;, &quot;C&quot;, &quot;D&quot;, &quot;E&quot; };
const int parteiZahl = sizeof(partei)/sizeof(partei[0]);

class DHundt: public Party
{
private:
	Party *m_partei[parteiZahl];
	int m_gesamtSitze;
	float m_gesamtStimmen;
public:
	DHundt(void);
	~DHundt(void);
	DHundt(int sitzZahl) : m_gesamtSitze(sitzZahl), m_gesamtStimmen(0)
	{
		float stimmen;
		cout &lt;&lt; &quot;Geben Sie die abgegebenen Stimmen pro Partei ein&quot; &lt;&lt; endl;
		for (int i=0; i&lt;parteiZahl; i++) 
		{
			cout &lt;&lt; partei[i] &lt;&lt; &quot;: &quot;;
			cin &gt;&gt; stimmen; 
			m_partei[i] = new Party(partei[i], stimmen);
			m_gesamtStimmen += stimmen;
		}
	}
	void berechne(void);
	void gibAus(void);
};
</code></pre>
<p><a href="//DHundt.h">//DHundt.h</a></p>
<pre><code class="language-cpp">#include &quot;DHundt.h&quot;

DHundt::DHundt(void){}
DHundt::~DHundt(void){}
void DHundt::berechne(void)
 {
	char zeich;
	cout &lt;&lt; endl &lt;&lt; &quot;Soll jede einzelne Sitzzuteilung ausgegeben werden (j/n) ? &quot;;
	cin.get(zeich); 
	bool detailAusgabe = tolower(zeich) == 'j'; cout &lt;&lt; endl;
	int vergebeneSitze = 0;
	while (vergebeneSitze &lt; m_gesamtSitze) 
	{
		int max = 0;
		for (int i=1; i&lt;parteiZahl; i++)
			if (m_partei[i]-&gt;getGeteiltStim() &gt; m_partei[max]-&gt;getGeteiltStim())
			max = i;
			++vergebeneSitze;
			if (detailAusgabe)
			cout &lt;&lt; endl &lt;&lt; &quot;...Sitz &quot; &lt;&lt; vergebeneSitze
			&lt;&lt; &quot; geht an: &quot; &lt;&lt; m_partei[max]-&gt;getName() &lt;&lt; &quot; (&quot;
			&lt;&lt; setprecision(0) &lt;&lt; setiosflags(ios::fixed)
			&lt;&lt; m_partei[max]-&gt;getGeteiltStim() &lt;&lt; &quot;)&quot;;
		m_partei[max]-&gt;setSitz();
	}
}
void DHundt::gibAus(void)
{
	cout &lt;&lt; endl &lt;&lt; endl &lt;&lt; &quot;Sitzverteilung:&quot; &lt;&lt; endl &lt;&lt; endl
	&lt;&lt; setw(13) &lt;&lt; &quot;Partei | &quot; &lt;&lt; setw(8) &lt;&lt; &quot;Sitze | &quot;
	&lt;&lt; setw(23) &lt;&lt; &quot;Prozent (Sitze) | &quot;
	&lt;&lt; setw(22) &lt;&lt; &quot;Prozent (Stimmen) |&quot; &lt;&lt; endl
	&lt;&lt; &quot;-----------+-------+----------------------+&quot;
	&quot;----------------------|&quot; &lt;&lt; endl;
	for (int i=0; i&lt;parteiZahl; i++)
	{
		cout &lt;&lt; setw(10) &lt;&lt; m_partei[i]-&gt;getName() &lt;&lt; &quot; | &quot;
		&lt;&lt; setw(5) &lt;&lt; m_partei[i]-&gt;getSitze() &lt;&lt; &quot; | &quot;
		&lt;&lt; setw(20) &lt;&lt; setprecision(2)
		&lt;&lt; (float)m_partei[i]-&gt;getSitze()/(float)m_gesamtSitze*100
		&lt;&lt; &quot; | &quot; &lt;&lt; setw(20) &lt;&lt; setprecision(2)
		&lt;&lt; m_partei[i]-&gt;getGesamtStim()/m_gesamtStimmen*100 &lt;&lt;&quot; | &quot; &lt;&lt;endl;
	}
}
</code></pre>
<pre><code class="language-cpp">#include &quot;DHundt.h&quot;

int main(void) 
{
	int AnzahlSitze;
	cout &lt;&lt; &quot;Wieviele Sitze sind zu vergeben: &quot;; 
	cin &gt;&gt; AnzahlSitze;
	DHundt sitzVerteilung(AnzahlSitze);
	sitzVerteilung.berechne();
	sitzVerteilung.gibAus();
        system(&quot;pause&quot;);
        return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1798756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798756</guid><dc:creator><![CDATA[pampy]]></dc:creator><pubDate>Mon, 26 Oct 2009 19:44:48 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Mon, 26 Oct 2009 19:04:33 GMT]]></title><description><![CDATA[<p>Mach</p>
<pre><code class="language-cpp">char *partei[] = { &quot;A&quot;, &quot;B&quot;, &quot;C&quot;, &quot;D&quot;, &quot;E&quot; }; 
const int parteiZahl = sizeof(partei)/sizeof(partei[0]);
</code></pre>
<p>mal an den Anfang von Party.h.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798761</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Mon, 26 Oct 2009 19:04:33 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Mon, 26 Oct 2009 19:19:58 GMT]]></title><description><![CDATA[<p>Du solltest <code>partei</code> nicht im Header definieren.</p>
<pre><code class="language-cpp">// dhundt.h
extern const char* partei[];
extern const int parteiZahl;

// dhundt.cpp
const char *partei[] = { &quot;A&quot;, &quot;B&quot;, &quot;C&quot;, &quot;D&quot;, &quot;E&quot; }; // const-strings!
const int parteiZahl = sizeof(partei)/sizeof(partei[0]);
</code></pre>
<p>Weiteres:<br />
<code>(void)</code> für leere Funktionsparameter ist überflüssig, <code>()</code> reicht und bedeutet dasselbe.<br />
<code>std::string</code> ist das Standard-C++-Mittel für Zeichenketten.<br />
DHundt ist also eine Partei, die weitere Parteien besitzt? Bist du sicher, dass das so stimmt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1798771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1798771</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Mon, 26 Oct 2009 19:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Sat, 21 Nov 2009 20:32:46 GMT]]></title><description><![CDATA[<p>müsste nun so passen.</p>
<p>Ist const zwingend? danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811594</guid><dc:creator><![CDATA[pampy]]></dc:creator><pubDate>Sat, 21 Nov 2009 20:32:46 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Sun, 22 Nov 2009 00:02:47 GMT]]></title><description><![CDATA[<p>pampy schrieb:</p>
<blockquote>
<p>Ist const zwingend? danke</p>
</blockquote>
<p>zwingend nicht, aber es hilft fehlern vorzubeugen:</p>
<pre><code class="language-cpp">char* text = &quot;asd&quot;;
text[2] = 'q'; //BÄM - Laufzeitfehler
</code></pre>
<pre><code class="language-cpp">const char* txt = &quot;asd&quot;;
text[2] = 'q'; //Compilerfehler
</code></pre>
<p>gehört auch zum guten ton.</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811651</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 22 Nov 2009 00:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Sun, 22 Nov 2009 17:46:08 GMT]]></title><description><![CDATA[<p>ok, gut! Gibt's dazu weiterführendes Material das zu empfehlen kannst?</p>
<p>danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811938</guid><dc:creator><![CDATA[pampy]]></dc:creator><pubDate>Sun, 22 Nov 2009 17:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Fehler on Sun, 22 Nov 2009 18:03:53 GMT]]></title><description><![CDATA[<p>jopp:<br />
&quot;const correctness&quot;<br />
ggf noch nen C++/cpp mit eintippen^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811954</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 22 Nov 2009 18:03:53 GMT</pubDate></item></channel></rss>