<?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[Klassenprobleme]]></title><description><![CDATA[<p>Hi!</p>
<p>Wir gehen stoffmäßig nun gut zur Sache und irgendwas fehlt mir im Bereich Klassen.<br />
Ich frage mich wo hier der Fehler liegt - es muss irgendwas mit Parameterübergabe/Variablenverwendung odr so zu tun haben. Ich nehme an besonders im VOID SETUP könnte sich was eingeschlichen haben!</p>
<p>Hier die Kompilierfehler:</p>
<pre><code>error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;private: int __thiscall karte::Random(int)&quot; (?Random@karte@@AAEHH@Z)&quot; in Funktion &quot;&quot;public: void __thiscall karte::setup(void)&quot; (?setup@karte@@QAEXXZ)&quot;.	karte.obj	

fatal error LNK1120: 1 nicht aufgelöste externe Verweise.	C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Visual Studio 2005\Projects\Wumpus\Debug\Wumpus.exe	1
</code></pre>
<p>Ja und hier die zusammenhängenden Files, die ihr braucht um es zu verstehen:</p>
<p>karte.h</p>
<pre><code class="language-cpp">#ifndef KARTE
#define KARTE

#define LEER	0
#define WUMPUS	1
#define GOLD	2
#define BAT		4
#define HOLE	8
#define W_N		16
#define W_S		32
#define W_E		64
#define W_W		128
#define SMELL	256
#define WIND	512

// Max Values
#define MAXX 100
#define MAXY 100

class karte
{
	public:
	karte();
	karte(int coordx, int coordy);
	void print();
	void setup();
	int mapsize(int c);

	private:
	int c;
	int x,y;
	int cx,cy;
	int map[MAXX][MAXY];
	int Random(int var);

};

#endif
</code></pre>
<p><a href="http://karte.cc" rel="nofollow">karte.cc</a></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;karte.h&quot;
#include &quot;time.h&quot;

using namespace std;

karte::karte()
{
	x=5;
	y=5;
	cx=5;
	cy=5;
	//map = {0}
}

karte::karte(int coordx, int coordy)
{
	cx=coordx;
	cy=coordy;
	//map = {0};
}

void karte::setup()
{
	x=Random(cx);
	y=Random(cy);
	map[x][y]=WUMPUS;
	map[x+1][y]=SMELL;
	map[x-1][y]=SMELL;
	map[x][y+1]=SMELL;
	map[x][y-1]=SMELL;
}

int Random(int var)
{
	srand(time(NULL));
	int i=rand()%var;
	return i;
}

int karte::mapsize(int c)
{
	switch(c)
	{
		case 0: return cx;
		case 1: return cy;
		default: return 0;
	}
}
void karte::print()
{
	for(int i=0; i&lt;cx; i++)
	{
		for(int j=0; i&lt;cy; i++)
		{
			cout &lt;&lt; map[i][j] &lt;&lt; &quot;\t&quot;;
		}
	cout &lt;&lt; endl;
	}
}
</code></pre>
<p><a href="http://wumpus.cc" rel="nofollow">wumpus.cc</a></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
//#include &quot;agent.h&quot;
#include &quot;karte.h&quot;

using namespace std;

int main()
{
	karte k;
	k.setup();
	k.print();
	return 0;
}
</code></pre>
<p>Wäre so super, wenn sich jemand die Zeit nehmen würde mir das zu erklären. Wirklich!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199082/klassenprobleme</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 20:01:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199082.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Nov 2007 18:14:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 18:14:09 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Wir gehen stoffmäßig nun gut zur Sache und irgendwas fehlt mir im Bereich Klassen.<br />
Ich frage mich wo hier der Fehler liegt - es muss irgendwas mit Parameterübergabe/Variablenverwendung odr so zu tun haben. Ich nehme an besonders im VOID SETUP könnte sich was eingeschlichen haben!</p>
<p>Hier die Kompilierfehler:</p>
<pre><code>error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;private: int __thiscall karte::Random(int)&quot; (?Random@karte@@AAEHH@Z)&quot; in Funktion &quot;&quot;public: void __thiscall karte::setup(void)&quot; (?setup@karte@@QAEXXZ)&quot;.	karte.obj	

fatal error LNK1120: 1 nicht aufgelöste externe Verweise.	C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Visual Studio 2005\Projects\Wumpus\Debug\Wumpus.exe	1
</code></pre>
<p>Ja und hier die zusammenhängenden Files, die ihr braucht um es zu verstehen:</p>
<p>karte.h</p>
<pre><code class="language-cpp">#ifndef KARTE
#define KARTE

#define LEER	0
#define WUMPUS	1
#define GOLD	2
#define BAT		4
#define HOLE	8
#define W_N		16
#define W_S		32
#define W_E		64
#define W_W		128
#define SMELL	256
#define WIND	512

// Max Values
#define MAXX 100
#define MAXY 100

class karte
{
	public:
	karte();
	karte(int coordx, int coordy);
	void print();
	void setup();
	int mapsize(int c);

	private:
	int c;
	int x,y;
	int cx,cy;
	int map[MAXX][MAXY];
	int Random(int var);

};

#endif
</code></pre>
<p><a href="http://karte.cc" rel="nofollow">karte.cc</a></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;karte.h&quot;
#include &quot;time.h&quot;

using namespace std;

karte::karte()
{
	x=5;
	y=5;
	cx=5;
	cy=5;
	//map = {0}
}

karte::karte(int coordx, int coordy)
{
	cx=coordx;
	cy=coordy;
	//map = {0};
}

void karte::setup()
{
	x=Random(cx);
	y=Random(cy);
	map[x][y]=WUMPUS;
	map[x+1][y]=SMELL;
	map[x-1][y]=SMELL;
	map[x][y+1]=SMELL;
	map[x][y-1]=SMELL;
}

int Random(int var)
{
	srand(time(NULL));
	int i=rand()%var;
	return i;
}

int karte::mapsize(int c)
{
	switch(c)
	{
		case 0: return cx;
		case 1: return cy;
		default: return 0;
	}
}
void karte::print()
{
	for(int i=0; i&lt;cx; i++)
	{
		for(int j=0; i&lt;cy; i++)
		{
			cout &lt;&lt; map[i][j] &lt;&lt; &quot;\t&quot;;
		}
	cout &lt;&lt; endl;
	}
}
</code></pre>
<p><a href="http://wumpus.cc" rel="nofollow">wumpus.cc</a></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
//#include &quot;agent.h&quot;
#include &quot;karte.h&quot;

using namespace std;

int main()
{
	karte k;
	k.setup();
	k.print();
	return 0;
}
</code></pre>
<p>Wäre so super, wenn sich jemand die Zeit nehmen würde mir das zu erklären. Wirklich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411777</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Wed, 28 Nov 2007 18:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 18:18:55 GMT]]></title><description><![CDATA[<p>Ein Fehler, dem jeden schon mal passiert ist...</p>
<p>Du solltest die Datei <em><a href="http://karte.cc" rel="nofollow">karte.cc</a></em> noch einmal in Ruhe durchgehen. Das sollte dir eigentlich ins Auge springen <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>Grüße... Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411779</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Wed, 28 Nov 2007 18:18:55 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 18:22:27 GMT]]></title><description><![CDATA[<p>Hi,<br />
es handelt sich nicht um einen Kompilier- als viel mehr um einen Linkerfehler. Der Grund ist einfach: du hast vergessen die Random Funktion aus der Klasse Karte zu definieren.</p>
<p><a href="http://karte.cc" rel="nofollow">karte.cc</a></p>
<pre><code class="language-cpp">int karte::Random(int) 
{ 
    // tu was
}
</code></pre>
<p>Gruss,<br />
DeSoVoDaMu</p>
<p>Edit: ich sehe gerade...du hast eine Random funktion, diese ist aber nicht als Methode der Klasse definiert.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<pre><code class="language-cpp">int karte::Random(int var) 
{ 
    srand(time(NULL)); 
    int i=rand()%var; 
    return i; 
}
</code></pre>
<p>Also bei der vorhandenen karte:: ergaenzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411780</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Wed, 28 Nov 2007 18:22:27 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 18:29:32 GMT]]></title><description><![CDATA[<p>Hi! Danke für die schnelle Antwort - nein! ich bin das schon mehrere Male durchgegangen -&gt; mir fehlt echt irgend ein Verständnispunkt: Ich kann x, y, cx und cy doch im setup verwenden oder? die sind doch public!?</p>
<p>Ich hab da schon so herumprobiert, aber ich komm irgendwie nicht klar - gib mir bitte noch einen genaueren Anhaltspunkt!</p>
<p>Danke!</p>
<p>edit:</p>
<p>Aha! Ich habe jetzt die &quot;int var&quot; noch eingefügt unten bei private bei der karte.h und beim konstruktor var dann einen wert gesetzt, aber es bringt nichts. Und übrigends: Random ist unter private doch schon drinnen.</p>
<p>Bitte: was mache ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411782</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Wed, 28 Nov 2007 18:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 19:00:04 GMT]]></title><description><![CDATA[<p>Ich verstehe es absolut nicht: Ich habe Random, die als Übergabeparameter var hat. Nun habe ich das aber so in der Klasse deklariert und selbst im Konstruktor int var einen Wert zugewiesen. Das muss doch gehen. Liegt es vllt. doch noch an was anderem?</p>
<p>mfg XaT</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411814</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Wed, 28 Nov 2007 19:00:04 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 19:27:42 GMT]]></title><description><![CDATA[<p>Hast du denn den bisherigen Vorschlag umgesetzt und statt &quot;int Random(int var)&quot; in <a href="http://karte.cc" rel="nofollow">karte.cc</a> &quot;int karte::Random(int var)&quot; geschrieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411832</guid><dc:creator><![CDATA[OhneName]]></dc:creator><pubDate>Wed, 28 Nov 2007 19:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 19:32:05 GMT]]></title><description><![CDATA[<p>ach ne! jetzt weiß ich erst was gemeint war! Danke vielmals. Okay jetzt kommen nur noch die Standardsyntaxfehler, die ich sicher raus bekommen werde! Danke viel viel mals!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411833</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Wed, 28 Nov 2007 19:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Wed, 28 Nov 2007 20:08:28 GMT]]></title><description><![CDATA[<p>okay gut es funktioniert nun - jetzt allerdings ein praxisbezogenes Problem damit (oben steht ja noch der Quellcode):</p>
<p>Ich setze ja in der Setup auf einer Zufallsposition den Wumpus, und rundherum setze ich ja den Smell.</p>
<p>Ich gebe das Array (das Spielfeld) ja mit der For-Schleife aus (print), und anstatt hier die DEFINE Zahlen (binär!) aufgelistet zu sehen sehe ich auf JEDEM einzelnen feld, selbst auf dem, wo der wumpus stehen sollte, die Zahl -858993460!</p>
<p>wird irgendwas mit einer Speicheradresse oder so zu tun haben.</p>
<p>Was mach ich hier wieder falsch?</p>
<p>EDIT:</p>
<p>OK OK ich bin im Wahn!!!! Ich hab's gelöst, zu dumm: muss natürlich zuerst alle Felder mit LEER initialisieren...der Wumpus existiert NOCH nicht, kA warum, kommt aber noch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411847</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Wed, 28 Nov 2007 20:08:28 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenprobleme on Thu, 29 Nov 2007 08:12:31 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>nur noch als Randnotiz zum Lernen:</p>
<p>XaTrIxX schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">#define LEER	0
#define WUMPUS	1
#define GOLD	2
#define BAT		4
#define HOLE	8
#define W_N		16
#define W_S		32
#define W_E		64
#define W_W		128
#define SMELL	256
#define WIND	512

// Max Values
#define MAXX 100
#define MAXY 100
</code></pre>
<p>...</p>
</blockquote>
<p>Lass das besser sein. Macht nur Ärger und hat keinen Vorteil gegenüber der Definition von Konstanten (und nein: Obwohl ich &quot;Definition&quot; gesagt habe, meinte ich NICHT &quot;#define&quot; <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>
<pre><code class="language-cpp">size_t const LEER = 0;
size_t const WUMPUS = 1;
size_t const GOLD = 2;
size_t const BAT = 4;
size_t const HOLE = 8;
size_t const W_N = 16;
size_t const W_S = 32;
size_t const W_E = 64
size_t const W_W = 128;
size_t const SMELL = 256;
size_t const WIND = 512;

// Max Values
size_t const MAXX = 100;
size_t const MAXY = 100;
</code></pre>
<p>Oder meinetwegen mit enums, wenn Du sie nie adressieren musst.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412012</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 29 Nov 2007 08:12:31 GMT</pubDate></item></channel></rss>