<?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[Compiler-Fehler]]></title><description><![CDATA[<p>Hi Community,</p>
<p>ich bin neu in der Welt von C++, habe davor aber Java gelernt. Ich habe im Moment folgendes Problem:<br />
Zum Üben und Reinkommen habe ich mir ein kleines Programm zusammengeschrieben, bekomme allerdings folgenden Fehler ausgespuckt (Visual Studio 2015 Enterprise):</p>
<p>error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;int __cdecl getDatum(void)&quot; (?getDatum@@YAHXZ)&quot; in Funktion &quot;main&quot;.</p>
<pre><code>#include &quot;getDate.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
int getDatum();

int main() {

	int Datum = getDatum();
	system(&quot;pause&quot;);
	return 0;

}

int getDate::getDatum()	{

	string date = __DATE__;
	int newDate = std::stoi(date);
	return newDate;

}

Header Datei:

#pragma once
class getDate	{

public:
	getDate();
	~getDate();

	int getDatum();

private:

};
</code></pre>
<p>Im Grunde soll mir die getDatum-Methode das Datum zurückliefern. Ich habe mich schon totgegoogelt, komme aber nicht auf die Lösung.<br />
Könnt ihr mit helfen?</p>
<p>Vielen Dank und Gruß!</p>
<p>Edit durch Arcoth: Code-Tags.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333799/compiler-fehler</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 08:58:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333799.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Aug 2015 10:54:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 11:08:19 GMT]]></title><description><![CDATA[<p>Hi Community,</p>
<p>ich bin neu in der Welt von C++, habe davor aber Java gelernt. Ich habe im Moment folgendes Problem:<br />
Zum Üben und Reinkommen habe ich mir ein kleines Programm zusammengeschrieben, bekomme allerdings folgenden Fehler ausgespuckt (Visual Studio 2015 Enterprise):</p>
<p>error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;int __cdecl getDatum(void)&quot; (?getDatum@@YAHXZ)&quot; in Funktion &quot;main&quot;.</p>
<pre><code>#include &quot;getDate.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
int getDatum();

int main() {

	int Datum = getDatum();
	system(&quot;pause&quot;);
	return 0;

}

int getDate::getDatum()	{

	string date = __DATE__;
	int newDate = std::stoi(date);
	return newDate;

}

Header Datei:

#pragma once
class getDate	{

public:
	getDate();
	~getDate();

	int getDatum();

private:

};
</code></pre>
<p>Im Grunde soll mir die getDatum-Methode das Datum zurückliefern. Ich habe mich schon totgegoogelt, komme aber nicht auf die Lösung.<br />
Könnt ihr mit helfen?</p>
<p>Vielen Dank und Gruß!</p>
<p>Edit durch Arcoth: Code-Tags.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461934</guid><dc:creator><![CDATA[xfthx]]></dc:creator><pubDate>Sat, 01 Aug 2015 11:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 11:22:55 GMT]]></title><description><![CDATA[<p>Wo ist <strong>int getDatum()</strong> definiert?</p>
<p>mfg Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461937</guid><dc:creator><![CDATA[mgaeckler]]></dc:creator><pubDate>Sat, 01 Aug 2015 11:22:55 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 11:38:31 GMT]]></title><description><![CDATA[<p>Ein Unterschied zwischen Java und C++ ist, dass es in C++ freie Funktionen gibt, die zu keiner Klasse gehören. Eine genau solche Funktion hast du deklariert, aber nirgendwo definiert. Definiet hast du nur eine gleichname Funktion der Klasse <code>getDate</code> , die rufst du in deiner <code>main</code> Funktion aber nicht auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461942</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sat, 01 Aug 2015 11:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 12:20:20 GMT]]></title><description><![CDATA[<p>Wie müsste es denn dann korrekt lauten? Denn getDatum habe ich ja in der header Datei definiert und in der cpp auch implementiert. Ich bin gerade ein wenig verwirrt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461943</guid><dc:creator><![CDATA[xfthx]]></dc:creator><pubDate>Sat, 01 Aug 2015 12:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 12:21:22 GMT]]></title><description><![CDATA[<p>Dir ist klar, dass <code>__DATE__</code> nicht das aktuelle Datum, sondern das Datum, zu dem du dein Programm erstellt hast zurückgibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461944</guid><dc:creator><![CDATA[dateprofi]]></dc:creator><pubDate>Sat, 01 Aug 2015 12:21:22 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 12:44:34 GMT]]></title><description><![CDATA[<p>xfthx schrieb:</p>
<blockquote>
<p>Wie müsste es denn dann korrekt lauten? Denn getDatum habe ich ja in der header Datei definiert und in der cpp auch implementiert. Ich bin gerade ein wenig verwirrt.</p>
</blockquote>
<p>Kommt drauf an was du genau machen möchtest, denn mir fallen schonmal 3 verschiedene Varianten ein:</p>
<p>Variante 1: Freie Funktion</p>
<pre><code>int getDatum() {
    string date = __DATE__;
    int newDate = std::stoi(date);
    return newDate;
}

int main() {
    int Datum = getDatum(); 
}
</code></pre>
<p>Variante 2: Memberfunktion</p>
<pre><code>class getDate {
public:
    int getDatum();
};

int getDate::getDatum() {
    string date = __DATE__;
    int newDate = std::stoi(date);
    return newDate;
}

int main() {
    getDate obj;  // Anders als in Java ist hier KEIN new nötig
    int Datum = obj.getDatum();
}
</code></pre>
<p>Variante 3: statische Memberfunktion</p>
<pre><code>class getDate {
public:
  static int getDatum();
};

int getDate::getDatum() {
  string date = __DATE__;
  int newDate = std::stoi(date);
  return newDate;
}

int main() {
  int Datum = getDate::getDatum();
}
</code></pre>
<p>Variante 2 und 3 sollten dir aus Java bekannt sein. Variante 1 geht dort nicht aber das Funktionen nicht zwingend einer Klasse zugeordnet sein müssen, sollte einfach zu verstehen sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461946</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sat, 01 Aug 2015 12:44:34 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 12:46:25 GMT]]></title><description><![CDATA[<p>xfthx schrieb:</p>
<blockquote>
<p>Wie müsste es denn dann korrekt lauten? Denn getDatum habe ich ja in der header Datei definiert und in der cpp auch implementiert. Ich bin gerade ein wenig verwirrt.</p>
</blockquote>
<p>In der Headerdatei hast Du einen Memberfunktion getDatum der Klasse getDate <strong>deklariert</strong>. Die Implementierung nennt man <strong>Definition</strong>.</p>
<p>Korrekt wäre gewesen:<br />
statt</p>
<pre><code>int getDate::getDatum() {

    string date = __DATE__;
    int newDate = std::stoi(date);
    return newDate;

}
</code></pre>
<p>einfach</p>
<pre><code>int getDatum() {

    string date = __DATE__;
    int newDate = std::stoi(date);
    return newDate;

}
</code></pre>
<p>und die Headerdatei weglassen.</p>
<p>oder</p>
<p>in der Headerdatei</p>
<p>statt</p>
<pre><code>#pragma once
class getDate   {

public:
    getDate();
    ~getDate();

    int getDatum();

private:

};
</code></pre>
<pre><code>#pragma once
class getDate   {

public:
    getDate();
    ~getDate();

    static int getDatum();

private:

};
</code></pre>
<p>und beim Aufruf statt</p>
<pre><code>int Datum = getDatum();
</code></pre>
<pre><code>int Datum = getDate::getDatum();
</code></pre>
<p>und die Deklaration von int getDate() in Zeile 5 entfernen.</p>
<p>mfg Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2461947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2461947</guid><dc:creator><![CDATA[mgaeckler]]></dc:creator><pubDate>Sat, 01 Aug 2015 12:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 23:24:12 GMT]]></title><description><![CDATA[<p>Hi ihr,</p>
<p>danke für die vielen Möglichkeiten! Ich habe mich für mgaecklers letzte Variante entschieden, doch da klappt immer noch etwas nicht. Der Code sieht jetzt folgendermaßen aus:</p>
<p>main.cpp</p>
<pre><code>#include &quot;getDate.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
//int getDatum();

int main() {

	int Datum = getDate::getDatum();
	cout &lt;&lt; &quot;The current date is: &quot; &lt;&lt; Datum &lt;&lt; endl;
	system(&quot;pause&quot;);
	return 0;

}

int getDate::getDatum()	{

	string date = __DATE__;
	int newDate = std::stoi(date);
	return newDate;

}
</code></pre>
<p>getDate.h</p>
<pre><code>#pragma once
class getDate	{

public:
	getDate();
	~getDate();

	static int getDatum();

private:

};
</code></pre>
<p>Als Fehlermeldung bekomme ich jetzt etwas sehr Kryptisches:<br />
Ausnahme ausgelöst bei 0x00007FF951B0A1C8 in Hello World!.exe: Microsoft C++-Ausnahme: std::invalid_argument bei Speicherort 0x0000000AED4BF380.<br />
Unbehandelte Ausnahme bei 0x00007FF951B0A1C8 in Hello World!.exe: Microsoft C++-Ausnahme: std::invalid_argument bei Speicherort 0x0000000AED4BF380.</p>
<p>Was stimmt denn nun nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Gruß</p>
<p>EDIT: Habe nun herausgefunden, was nicht stimmt. __DATE__ lässt sich nicht ohne Weiteres in einen int verwandeln. Wenn ich anstatt __DATE__ als string Zahlen eingebe, läuft das Programm sauber durch. Verwende ich die stoi-Methode verkehrt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462041</guid><dc:creator><![CDATA[xfthx]]></dc:creator><pubDate>Sat, 01 Aug 2015 23:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Sat, 01 Aug 2015 23:46:21 GMT]]></title><description><![CDATA[<p>xfthx schrieb:</p>
<blockquote>
<p>Habe nun herausgefunden, was nicht stimmt. __DATE__ lässt sich nicht ohne Weiteres in einen int verwandeln. Wenn ich anstatt __DATE__ als string Zahlen eingebe, läuft das Programm sauber durch. Verwende ich die stoi-Methode verkehrt?</p>
</blockquote>
<p>Du rufst du Funktion richtig auf, falls du das mit Verwendung meinst. Allerdings musst du dir angucken was du der stoi Funktion vorwirfst. Das __DATE__ Makro (was übrigens das Datum während des compilierens ist und nichts was irgendwie zur Laufzeit bestimmt wird) enthält z.B. irgendwas wie &quot;Aug 2 2015&quot;. Wenn du zu einem int konvertieren möchtest, geht das natürlich nicht ohne weiteres und die stoi Funktion wirft deswegen eine Exception. Für die stoi Funktion muss der übergebene string wenigstens mit Zahlen beginnen. Um dir jetzt einen vernünftigen Tipp zu geben müsste man erstmal wissen was du vorhast. Wieso möchtest du ein Datum in einen int konvertieren? Wenn du einfach nur das aktuelle Datum auf der Konsole ausgeben möchtest, könnte das so aussehen (bei den Datumsfunktionen gibts viele veraltete Funktionen aus C Zeiten, ich hoffe das Beispiel ist einigermaßen aktuell):</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;ctime&gt;

int main() {
  std::time_t result = std::time(NULL);
  std::cout &lt;&lt; std::put_time(localtime(&amp;result), &quot;%d.%m.%Y&quot;);
}
</code></pre>
<p>Das in eventuelle Funktionen zu verpacken überlasse ich dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462042</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sat, 01 Aug 2015 23:46:21 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Mon, 03 Aug 2015 14:05:12 GMT]]></title><description><![CDATA[<p>Schau dir mal strftime(...) bzw. time(...) an:</p>
<p><a href="http://www.cplusplus.com/reference/ctime/strftime/?kw=strftime" rel="nofollow">http://www.cplusplus.com/reference/ctime/strftime/?kw=strftime</a><br />
<a href="http://www.cplusplus.com/reference/ctime/time/?kw=time" rel="nofollow">http://www.cplusplus.com/reference/ctime/time/?kw=time</a></p>
<p>localtime(...) könnte auch nützlich sein:</p>
<p><a href="http://www.cplusplus.com/reference/ctime/localtime/?kw=localtime" rel="nofollow">http://www.cplusplus.com/reference/ctime/localtime/?kw=localtime</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462235</guid><dc:creator><![CDATA[coder777]]></dc:creator><pubDate>Mon, 03 Aug 2015 14:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Tue, 04 Aug 2015 21:22:47 GMT]]></title><description><![CDATA[<p>Danke euch allen! Ich habe einiges dazugelernt. Allerdings hätte ich noch eine andere Frage: Bei Java gibt es ja eine API, wo man nachschauen kann, was eine Methode tut, welche Inputparameter sie erwartet und was sie ausgibt usw. Gibt es etwas Ähnliches für C++? Ich habe so das Gefühl, dass es 100000 Methoden gibt, aber ich nirgends nachschauen kann, was diese machen.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462533</guid><dc:creator><![CDATA[xfthx]]></dc:creator><pubDate>Tue, 04 Aug 2015 21:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Tue, 04 Aug 2015 22:21:13 GMT]]></title><description><![CDATA[<p>Eine <a href="https://en.wikipedia.org/wiki/API" rel="nofollow">API</a>? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Bist du sicher, dass du das richtige Wort benutzt?</p>
<p>Was gefällt dir denn nicht an den Referenzen, die in diesem Thread verlinkt wurden, oder an den Alternativen, die in der als <strong>wichtig</strong> markierten <a href="https://www.c-plusplus.net/forum/310212">Linkliste für Neulinge</a> zu finden sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462541</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 04 Aug 2015 22:21:13 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler-Fehler on Wed, 05 Aug 2015 01:45:00 GMT]]></title><description><![CDATA[<p>Klar, kennst du die F1-API nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/32500">@xfthx</a><br />
F1 ist dein Freund.<br />
<a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a> ist auch kein Feind.<br />
Google kennt den Rest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2462552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2462552</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 05 Aug 2015 01:45:00 GMT</pubDate></item></channel></rss>