<?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[Einbinden von Header ergibt Fehler in durch Klasse]]></title><description><![CDATA[<p>Hi,<br />
wie in <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-229679.html" rel="nofollow">diesem Thread</a> schon geschrieben arbeite ich gerade an einem Funktionsplotter...<br />
Bevor ich nun den Parser einbaue sollte es erst einmal mit einer im Quelltext festgelegten Funktion funktionire...<br />
Dazu habe ich in der Datei <strong>function.h</strong> ein Klasse wie folgt angelegt:</p>
<pre><code class="language-cpp">class function {
public:
		virtual double value (double x);
};

//näher beschrieben (NUR ALS BEISPIELFUNKTION) durch:

double function::value (double x){
	return sin(1/x);
}
</code></pre>
<p>Dann binde ich diesen Header in <strong>plot.cpp</strong> ein:</p>
<pre><code class="language-cpp">//die includes:
#include &quot;plot.h&quot;
#include &quot;draw.h&quot;
#include &quot;function.h&quot;
#include &quot;text.h&quot;

const double diff = 0;
const int D=5;

//using namespace std;

#include &quot;SDL.h&quot;
#include &quot;SDL_ttf.h&quot;

//die Verwendung:

void DrawScene(SDL_Surface *screen, TTF_Font *font, SDL_Rect dest, double *interval){
  Slock(screen);
  function *f = new function;

  //define needed parameters:
  double xscal = xscale(dest,interval);
  double *values;
  calcvalues(f,dest,xscal,interval,&amp;values);;
  double yscal = yscale(dest,values);
  int * xcoordinates;
  int *ycoordinates;
  calccoordinates(values,dest,yscal,&amp;xcoordinates,&amp;ycoordinates);
  //
  DrawFunction(screen,dest,xcoordinates,ycoordinates,255,255,255);
  //
  calccoorsystem(screen,dest,values,interval,xscal,yscal,xcoordinates,ycoordinates,10,10,font,255,255,255);
  //
  Sulock(screen);
  SDL_Flip(screen);
}
</code></pre>
<p>Will ich nun function.h noch in einer anderen Datei einbinden, so z.B. in plot.h oder main.cpp, so erhalte ich den Fehler:</p>
<pre><code>plot.obj : error LNK2005: &quot;public: virtual double __thiscall function::value(double)&quot; (?value@function@@UAENN@Z) ist bereits in main.obj definiert.
</code></pre>
<p>Plattform: VC++ 2008</p>
<p>Kann mir jemand sagen, woran das liegt???</p>
<p>LG Ben-ny</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229718/einbinden-von-header-ergibt-fehler-in-durch-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 16:59:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229718.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Dec 2008 18:09:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 18:09:53 GMT]]></title><description><![CDATA[<p>Hi,<br />
wie in <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-229679.html" rel="nofollow">diesem Thread</a> schon geschrieben arbeite ich gerade an einem Funktionsplotter...<br />
Bevor ich nun den Parser einbaue sollte es erst einmal mit einer im Quelltext festgelegten Funktion funktionire...<br />
Dazu habe ich in der Datei <strong>function.h</strong> ein Klasse wie folgt angelegt:</p>
<pre><code class="language-cpp">class function {
public:
		virtual double value (double x);
};

//näher beschrieben (NUR ALS BEISPIELFUNKTION) durch:

double function::value (double x){
	return sin(1/x);
}
</code></pre>
<p>Dann binde ich diesen Header in <strong>plot.cpp</strong> ein:</p>
<pre><code class="language-cpp">//die includes:
#include &quot;plot.h&quot;
#include &quot;draw.h&quot;
#include &quot;function.h&quot;
#include &quot;text.h&quot;

const double diff = 0;
const int D=5;

//using namespace std;

#include &quot;SDL.h&quot;
#include &quot;SDL_ttf.h&quot;

//die Verwendung:

void DrawScene(SDL_Surface *screen, TTF_Font *font, SDL_Rect dest, double *interval){
  Slock(screen);
  function *f = new function;

  //define needed parameters:
  double xscal = xscale(dest,interval);
  double *values;
  calcvalues(f,dest,xscal,interval,&amp;values);;
  double yscal = yscale(dest,values);
  int * xcoordinates;
  int *ycoordinates;
  calccoordinates(values,dest,yscal,&amp;xcoordinates,&amp;ycoordinates);
  //
  DrawFunction(screen,dest,xcoordinates,ycoordinates,255,255,255);
  //
  calccoorsystem(screen,dest,values,interval,xscal,yscal,xcoordinates,ycoordinates,10,10,font,255,255,255);
  //
  Sulock(screen);
  SDL_Flip(screen);
}
</code></pre>
<p>Will ich nun function.h noch in einer anderen Datei einbinden, so z.B. in plot.h oder main.cpp, so erhalte ich den Fehler:</p>
<pre><code>plot.obj : error LNK2005: &quot;public: virtual double __thiscall function::value(double)&quot; (?value@function@@UAENN@Z) ist bereits in main.obj definiert.
</code></pre>
<p>Plattform: VC++ 2008</p>
<p>Kann mir jemand sagen, woran das liegt???</p>
<p>LG Ben-ny</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630907</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Mon, 15 Dec 2008 18:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 18:19:44 GMT]]></title><description><![CDATA[<p>Fehlende Headerguards?</p>
<p>Ansonsten Build mal neu. Hatte ich auch mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630910</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 15 Dec 2008 18:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 18:27:02 GMT]]></title><description><![CDATA[<p>Wenn du mit Headerguards das hier meinst:</p>
<pre><code class="language-cpp">#ifndef PLOT_H
#define PLOT_H

#include &quot;SDL.h&quot;
#include &quot;SDL_ttf.h&quot;

#include &quot;function.h&quot;

void DrawScene(SDL_Surface *screen, TTF_Font *font, SDL_Rect dest, double *interval);

#endif
</code></pre>
<p>, dann kann das nicht der Fehler sein!</p>
<p>Und wenn ich das neu kompilieren (&quot;Projektmappe neu erstellen&quot;), dann kommt er gleiche Fehler...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630913</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Mon, 15 Dec 2008 18:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 18:28:54 GMT]]></title><description><![CDATA[<p>Achso und bei function.h :</p>
<p>[cpp]#ifndef FUNCTION_H<br />
#define FUNCTION_H</p>
<p>#include &lt;math.h&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>class function {<br />
public:<br />
virtual double value (double x);<br />
};</p>
<p>double function::value (double x){<br />
return sin(1/x);<br />
}</p>
<p>#endif<br />
[code]</p>
<p>Entschuldigt bitte den Doppelpost!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630915</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Mon, 15 Dec 2008 18:28:54 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 18:42:52 GMT]]></title><description><![CDATA[<p>double function::value (double x){<br />
return sin(1/x);<br />
}</p>
<p>muss in function.cpp, nicht in die Header.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630922</guid><dc:creator><![CDATA[feigling]]></dc:creator><pubDate>Mon, 15 Dec 2008 18:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 18:57:02 GMT]]></title><description><![CDATA[<p>Verdammt...so trivial!!!<br />
Danke Leute - ihr seid Spitze!!!</p>
<p>LG Ben-ny</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630930</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Mon, 15 Dec 2008 18:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 20:26:02 GMT]]></title><description><![CDATA[<p>Ich wollte meinem Lehrer gerade eine Vorab-Version des Plotters schicken...<br />
Da er kein VC++ hat, wollte ich dies als Release-Version tun, allerdings erhalte ich nun die Fehlermeldung:</p>
<pre><code>MSVCRT.lib(crtexe.obj) : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_main&quot;.
</code></pre>
<p>Begleitet von:</p>
<pre><code>draw.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_LockSurface&quot;.
draw.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_UnlockSurface&quot;.
draw.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_MapRGB&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_Init&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_SetVideoMode&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_PollEvent&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_TTF_OpenFont&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_TTF_CloseFont&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_TTF_Init&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_GetError&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_TTF_Quit&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_Quit&quot;.
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_FreeSurface&quot;.
plot.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_Flip&quot;.
text.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_TTF_RenderText_Solid&quot;.
text.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;_SDL_UpperBlit&quot;.
</code></pre>
<p>Woran könnte das liegen?<br />
Was sind mögliche Ursachen für derartige Fehlermeldungen?!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630964</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Mon, 15 Dec 2008 20:26:02 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 20:50:31 GMT]]></title><description><![CDATA[<p>Wahrscheinlich daran, dass du die libs in der Release Version nicht mitlinkst..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630974</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 15 Dec 2008 20:50:31 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Mon, 15 Dec 2008 20:58:47 GMT]]></title><description><![CDATA[<p>Aber nicht mal die CRT? Wie sieht denn dein modularer Aufbau aus, wo steht z.B. die <code>main()</code> -Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630984</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 15 Dec 2008 20:58:47 GMT</pubDate></item><item><title><![CDATA[Reply to Einbinden von Header ergibt Fehler in durch Klasse on Tue, 16 Dec 2008 06:26:32 GMT]]></title><description><![CDATA[<p>OK, war wirklich so einfach! Hab den Linker für die Release-Version vergessen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631066</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Tue, 16 Dec 2008 06:26:32 GMT</pubDate></item></channel></rss>