<?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[Hilfe, Compilerfehler]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bekomme bei meinem Programm folgende Fehler:<br />
Error 1 error LNK2005: &quot;public: void __thiscall Laeufer::anlegen(void)&quot; (?anlegen@Laeufer@@QAEXXZ) already defined in Laeufer.obj Vereinslaeufer.obj<br />
Error 2 error LNK2019: unresolved external symbol &quot;public: void __thiscall Vereinslaeufer::anlegen(void)&quot; (?anlegen@Vereinslaeufer@@QAEXXZ) referenced in function _main Main.obj<br />
Error 3 fatal error LNK1120: 1 unresolved externals C:\studium\anderes\programmieren\kompaktkurs c++\1\cpp2\crosslauf psta1\Release\crosslauf.exe 1</p>
<p>Googlesuche hat mich nicht weitergebracht. Kann mir bitte jemand helfen?<br />
Gerne texte ich auch quellcode, wenn gewünscht.</p>
<p>Beste Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195631/hilfe-compilerfehler</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 04:57:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195631.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Oct 2007 18:37:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Fri, 19 Oct 2007 18:37:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bekomme bei meinem Programm folgende Fehler:<br />
Error 1 error LNK2005: &quot;public: void __thiscall Laeufer::anlegen(void)&quot; (?anlegen@Laeufer@@QAEXXZ) already defined in Laeufer.obj Vereinslaeufer.obj<br />
Error 2 error LNK2019: unresolved external symbol &quot;public: void __thiscall Vereinslaeufer::anlegen(void)&quot; (?anlegen@Vereinslaeufer@@QAEXXZ) referenced in function _main Main.obj<br />
Error 3 fatal error LNK1120: 1 unresolved externals C:\studium\anderes\programmieren\kompaktkurs c++\1\cpp2\crosslauf psta1\Release\crosslauf.exe 1</p>
<p>Googlesuche hat mich nicht weitergebracht. Kann mir bitte jemand helfen?<br />
Gerne texte ich auch quellcode, wenn gewünscht.</p>
<p>Beste Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388707</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 19 Oct 2007 18:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Fri, 19 Oct 2007 19:06:59 GMT]]></title><description><![CDATA[<p>Ohne Code kann man wirklich nur raten:<br />
1. Entweder vergessene Inkludeguards oder vielleicht ein Copy-PasteFehler und die Methode existiert zweimal...<br />
2. Auf letzteres würde deuten, das er hier keine Methode &quot;Vereinslaeufer::anlegen&quot; gefunden hat (Wirklich in cpp/h die richtigen Bezeichner gewählt?</p>
<p>cu André<br />
P.S: Ein Code der soweit gekürzt wurde das der Fehler noch auftritt ist meist mehr als sinnvoll...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388712</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 19 Oct 2007 19:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Fri, 19 Oct 2007 19:46:19 GMT]]></title><description><![CDATA[<p>Hallo André,</p>
<p>danke für die antwort.<br />
An die includeguards hab ich gedacht. Es handelt sich um ein Vererbungskonzept.<br />
Klasse Vereinslaeufer erbt von Laeufer. Ich muss dazu sagen, dass das mein<br />
erstes mal wo ich in c++ mit Vererbung zu tun hab.<br />
Ich kopiere mal die header dateien von Vereinslaeufer und Laeufer rein:</p>
<p>Laeufer.h:</p>
<pre><code class="language-cpp">#ifndef Laeufer_H
#define Laeufer_H
#include&lt;string&gt;

class Laeufer{
//Deklarieren der Attribute
protected:
	int startnr;
	std::string nachname;
	std::string vorname;
	int alter;
	double startgebuehr;
	char geschlecht;
	double zeit;

// deklarieren der Methoden	
public:
	Laeufer();
	~Laeufer();
	void anlegen(void);
	void ausgeben(void);
	int getstartnr();
	int getAlter();
	char getVereinzug();
	std::string getVereinname();
	double getStartgebuehr();
	void gebuehrNichtVerein(void);
	void ergebnisse(void);
	double getZeit(void);
	char getGeschlecht(void);
	void anzeigenKatJug(void);
	void anzeigenKatFrau(void);
	void anzeigenKatMann(void);
};
#endif
</code></pre>
<p>Laeufer.h:</p>
<pre><code class="language-cpp">#ifndef Vereinslaeufer_H
#define Vereinslaeufer_H
#include &quot;Laeufer.h&quot;
#include&lt;string&gt;

class Vereinslaeufer : public Laeufer
{
private:
	char vereinzug;
	std::string vereinname;

public:
	Vereinslaeufer();
	~Vereinslaeufer();
	void anlegen(void);

};
#endif
</code></pre>
<p>Ich weiß nicht, ob euch die header-dateien reichen, ich könnte die cpp files<br />
auch noch einfügen. Wär klasse, wenn jemand auf meinen Fehler kommen würde.</p>
<p>Gruß<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388736</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 19 Oct 2007 19:46:19 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Fri, 19 Oct 2007 19:55:58 GMT]]></title><description><![CDATA[<p>Es ist doch offensichtlich: Laeufer::anlegen gibt's doppelt, und Vereinslaeufer::anlegen fehlt. Wahrscheinlich hast du bei Vereinslaeufer::anlegen einfach den falschen Klassennamen hingeschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388738</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 19 Oct 2007 19:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Fri, 19 Oct 2007 20:06:05 GMT]]></title><description><![CDATA[<p>Ah super klasse *g*<br />
Eine kleine Anfängerfrage noch, wie kann ich die methode von Laeufer aufrufen?<br />
Ich möchte keine neue Methode &quot;anlegen&quot; in Vereinlaeufer erzeugen, sondern über Vereinslaeufer die geerbte Methode &quot;anlegen&quot;aufrufen.<br />
Ich hoffe, ich drück mich net zu umständlich aus. <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>Schönen Abend noch und recht herzlichen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388743</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 19 Oct 2007 20:06:05 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Fri, 19 Oct 2007 20:11:45 GMT]]></title><description><![CDATA[<p>Hab vergessen noch zu sagen, da die Methode Laeufer::anlegen()<br />
sehr viele Attribute abfrägt. Von Vornamen bishin zu Geburtsdatung.<br />
Laut der Theorie, wird doch bei einer Vererbung auch Methoden vererbt<br />
werden. Wenn ich jetzt die Methode Vereinslaeufer::anlegen() erzeuge,<br />
dann ist es erforderlich, neue Variablen anzulegen.<br />
Gibt es da eine Möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388744</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 19 Oct 2007 20:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Fri, 19 Oct 2007 20:27:01 GMT]]></title><description><![CDATA[<p>Ich habs jetzt rausbekommen, so funktioniert es:</p>
<p>Diese Methode steht in Vereinslaeufer.h</p>
<p>void Vereinslaeufer::anlegen(){<br />
Laeufer::anlegen();<br />
}</p>
<p>Aber verstehen tue ichs nicht.</p>
<p>Warum kann ich nicht das schreiben:</p>
<p>void Laeufer::anlegen(){</p>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388751</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 19 Oct 2007 20:27:01 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Sat, 20 Oct 2007 18:15:37 GMT]]></title><description><![CDATA[<p>Hat keiner eine Antwort auf meine Frage?<br />
wäre echt schön...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389112</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Sat, 20 Oct 2007 18:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Sat, 20 Oct 2007 19:47:11 GMT]]></title><description><![CDATA[<p>Naja du hast die gleiche Methode 2x.<br />
Das heisst das 2te anlegen() überschreibt das erste.<br />
Geb beiden Methoden einen eindeutigen Namen wie LaeuferAnlegen() und VLaeuferAnlegen(), dann gibts keine Probleme.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389161</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 20 Oct 2007 19:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Sun, 21 Oct 2007 15:05:32 GMT]]></title><description><![CDATA[<p>Oder die vererbte Methode anlegen() benutzen (Tun ja beide eh das selbe)</p>
<p>Eleganter wäre aber das ganze über Konstruktorparameterlisten<br />
Kurzes Beislpiel:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

class CZimmer
{
private:
    float m_fHoehe,m_fBreite,m_fLaenge;
public:
    CZimmer(float fH,float fB,float fL) : m_fHoehe(fH),m_fBreite(fB)
    {
        m_fLaenge=fL; //Zur Demonstration einmal anders
    }
    void Zeige(void)
    {
        cout&lt;&lt;&quot;Hoehe  =&quot;&lt;&lt;m_fHoehe&lt;&lt;endl
            &lt;&lt;&quot;Breite =&quot;&lt;&lt;m_fBreite&lt;&lt;endl
            &lt;&lt;&quot;Laenge =&quot;&lt;&lt;m_fLaenge&lt;&lt;endl;
    }
};

class CBad :public CZimmer
{
private:
    bool m_bWanne,m_bDusche; //Vorhanden?
    float m_fLeistungBoiler;
public:
    CBad(float fh,float fB,float fL,bool bW,bool bD,float fLB) : CZimmer(fH,fB,fL),m_bWanne(bW)
    {
        m_bDusche=bD;          //Wieder nur zur Demo
        m_fLeistungBoiler=fLB; //Für eine von beiden Methoden entscheiden
    }
    void Zeige(void)
    {
        CZimmer::Zeige();
        cout&lt;&lt;&quot;Wanne  :&quot;&lt;&lt;(m_bWanne ? &quot;Ja&quot; : &quot;Nein&quot; )&lt;&lt;endl
            &lt;&lt;&quot;Dusche :&quot;&lt;&lt;(m_bDusche ? &quot;Ja&quot; : &quot;Nein&quot; )&lt;&lt;endl
            &lt;&lt;&quot;Leistung des Boilers :&quot;&lt;&lt;m_fLeistungBoiler&lt;&lt;endl;
};

int main()
{
    CBad Bad(2.5F,5.F,4.25F,false,true,500.F); //Hier werden beide angelegt
    Bad.Zeige(); //Und hier neide angezeigt
    return(0);
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
Na gut war ein langes Beispiel...<br />
Aber wichtig ist, dass man das Printzip versteht</p>
<p>Dein nächster Schritt sollte die Polymorphie sein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389389</guid><dc:creator><![CDATA[Vox 3D]]></dc:creator><pubDate>Sun, 21 Oct 2007 15:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe, Compilerfehler on Tue, 23 Oct 2007 18:28:28 GMT]]></title><description><![CDATA[<p>danke für die Antworten, freut mich</p>
<p>Beste Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1390757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1390757</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Tue, 23 Oct 2007 18:28:28 GMT</pubDate></item></channel></rss>