<?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[Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global?]]></title><description><![CDATA[<p>hi, ich hab da mal eine Frage. und zwar habe ich mir eine klasse erstellt( gegner ) so diese beinhaltet,<br />
desen Leben, Mana, Angriff, Rüstung ... und den namen im konstruktor. so nun möchte ich eine Funktion<br />
erstellen( void CreateCreep(); ) mit dieser Funktion möchte ich nun die daten zufällig belegen. ausserhalb habe ich globale static int variablen.</p>
<pre><code class="language-cpp">static int _life = 0;
static int _mana = 0;
static int _level = 0;
static int _damage = 0;
static int _ammor = 0;

void CreateCreep() {

	gegner creep( &quot;Knut&quot;);

	//nun werden die static variablen mit zufälligen werten belegt
	...
	...
	...

	// mit einer Funktion aus der Klasse gegner belege ich nun die werte in der private, der klasse
	   gegner 

	creep.SetStatus( _life, _mana, _level, _damage, _ammor );
}
</code></pre>
<p>soviel zu dieser Funktion. dann möchte ich in der main() - Funktion, in der Schleife while(fight), die<br />
werte von creep mit der Funktion GetStatus(); erfahren, doch das problem ist ja das das Objekt in der<br />
Funktion CreateCreep(); nicht global ist. hmm hat wer ne idee wie ich das Objekt trotzdem nutzbar machen<br />
kann.</p>
<p>für Hilfe bin ich natürlich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163268/problem-mit-klassen-objekt-wie-macht-man-ein-objekt-in-einer-funktion-global</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 23:39:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163268.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Oct 2006 16:11:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Fri, 27 Oct 2006 16:11:45 GMT]]></title><description><![CDATA[<p>hi, ich hab da mal eine Frage. und zwar habe ich mir eine klasse erstellt( gegner ) so diese beinhaltet,<br />
desen Leben, Mana, Angriff, Rüstung ... und den namen im konstruktor. so nun möchte ich eine Funktion<br />
erstellen( void CreateCreep(); ) mit dieser Funktion möchte ich nun die daten zufällig belegen. ausserhalb habe ich globale static int variablen.</p>
<pre><code class="language-cpp">static int _life = 0;
static int _mana = 0;
static int _level = 0;
static int _damage = 0;
static int _ammor = 0;

void CreateCreep() {

	gegner creep( &quot;Knut&quot;);

	//nun werden die static variablen mit zufälligen werten belegt
	...
	...
	...

	// mit einer Funktion aus der Klasse gegner belege ich nun die werte in der private, der klasse
	   gegner 

	creep.SetStatus( _life, _mana, _level, _damage, _ammor );
}
</code></pre>
<p>soviel zu dieser Funktion. dann möchte ich in der main() - Funktion, in der Schleife while(fight), die<br />
werte von creep mit der Funktion GetStatus(); erfahren, doch das problem ist ja das das Objekt in der<br />
Funktion CreateCreep(); nicht global ist. hmm hat wer ne idee wie ich das Objekt trotzdem nutzbar machen<br />
kann.</p>
<p>für Hilfe bin ich natürlich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162643</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Fri, 27 Oct 2006 16:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Fri, 27 Oct 2006 18:50:47 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>hi, ich hab da mal eine Frage. und zwar habe ich mir eine klasse erstellt( gegner ) so diese beinhaltet,<br />
desen Leben, Mana, Angriff, Rüstung ... und den namen im konstruktor. so nun möchte ich eine Funktion<br />
erstellen( void CreateCreep(); ) mit dieser Funktion möchte ich nun die daten zufällig belegen. ausserhalb habe ich globale static int variablen.</p>
<pre><code class="language-cpp">static int _life = 0;
static int _mana = 0;
static int _level = 0;
static int _damage = 0;
static int _ammor = 0;

void CreateCreep() {

	gegner creep( &quot;Knut&quot;);

	//nun werden die static variablen mit zufälligen werten belegt
	...
	...
	...

	// mit einer Funktion aus der Klasse gegner belege ich nun die werte in der private, der klasse
	   gegner 

	creep.SetStatus( _life, _mana, _level, _damage, _ammor );
}
</code></pre>
<p>soviel zu dieser Funktion. dann möchte ich in der main() - Funktion, in der Schleife while(fight), die<br />
werte von creep mit der Funktion GetStatus(); erfahren, doch das problem ist ja das das Objekt in der<br />
Funktion CreateCreep(); nicht global ist. hmm hat wer ne idee wie ich das Objekt trotzdem nutzbar machen<br />
kann.</p>
<p>für Hilfe bin ich natürlich sehr dankbar.</p>
</blockquote>
<p>Hi,</p>
<p>die Funktion könnte den Creep dynamisch anlegen</p>
<pre><code class="language-cpp">gegner *creep=new gegner(&quot;Knut&quot;);
</code></pre>
<p>und dann die Adresse des Gegners als Rückgabewert der Funktion nach außen liefern.<br />
Musst dann eben nur darauf achten, dass der Gegner irgendwo wieder freigegeben wird. Je nach Situation könnte sich ein auto_ptr anbieten.</p>
<p>Nid</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162785</guid><dc:creator><![CDATA[Nidhogger]]></dc:creator><pubDate>Fri, 27 Oct 2006 18:50:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Fri, 27 Oct 2006 19:03:47 GMT]]></title><description><![CDATA[<p>hmm kannstee vieleicht mal an meinen quelltext zeigen wie du des meinst.. bin noch net so erfahren das ich alles allein hin bekomme. waer nnett dnake</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162796</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Fri, 27 Oct 2006 19:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Sat, 28 Oct 2006 00:05:47 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>hmm kannstee vieleicht mal an meinen quelltext zeigen wie du des meinst.. bin noch net so erfahren das ich alles allein hin bekomme. waer nnett dnake</p>
</blockquote>
<p>Obwohl wir hier im Bereich C++/CLI sind, sieht dein Code wie &quot;normales&quot; C++ aus deswegen habe ich auch normalen Code geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;ctime&gt;
using namespace std;

class Gegner {
  int life; 
  int mana; 
  int level; 
  int damage; 
  int armor;
  string name;

public:
  Gegner(const string&amp; n, int li, int ma, int le, int da, int ar)
    : name(n), life(li), mana(ma), level(le), damage(da), armor(ar)
  {}
  const string&amp; GetName() const {
    return(name);
  }

};

Gegner* CreateCreep(const string&amp; name) {
  int life=rand();
  int mana=rand();
  int level=rand();
  int damage=rand();
  int armor=rand();
  return(new Gegner(name, life, mana, level, damage, armor));
}

int main() {
  srand(time(0));

  Gegner* g=CreateCreep(&quot;Knut&quot;);
  cout &lt;&lt; g-&gt;GetName() &lt;&lt; endl;
  delete(g);
}
</code></pre>
<p>Ich habe als Beispiel für einen Zugriff aus main auf das Gegner-Objekt mal eine GetName-Methode geschrieben, da ich nicht weiß, wie deine SetStatus-Methoe aussehen soll.<br />
Auch die zufälligen Werte werden nicht deinem gewünschten Wertebereich entsprechen, aber das ist dann Feintuning.</p>
<p>Nid.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162883</guid><dc:creator><![CDATA[Nidhogger]]></dc:creator><pubDate>Sat, 28 Oct 2006 00:05:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Sat, 28 Oct 2006 08:14:17 GMT]]></title><description><![CDATA[<p>hmm, jojo danke fürs erste,<br />
ich denke das ist genau das was ich erst einmal gesucht habe, dass mit dein zufalls werten einschränken des schaf ich denk ich mal schon mit limits.h und % ... . also danke erst einmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162918</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sat, 28 Oct 2006 08:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Sat, 28 Oct 2006 11:40:41 GMT]]></title><description><![CDATA[<p>ok ich haette mir das eigentlich so vorgestellt</p>
<pre><code class="language-cpp">int CreateEnemy() {

    enemy *creep;
    creep = new enemy(&quot;Knut&quot;);

    _life1   = rand() % _life + 1;
    _mana1   = rand() % _mana + 1;
    _level1  = rand() % _level + 1;
    _damage1 = rand() % _damage + 1;
    _ammor1  = rand() % _ammor + 1;

    return (creep-&gt;SetStatus( _life1, _mana1, _level1, _damage1, _ammor1 ));
}
</code></pre>
<p>wie bekomm ich des hin das es so funktioniert? oder geht des net?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162996</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sat, 28 Oct 2006 11:40:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Sat, 28 Oct 2006 14:35:49 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>ok ich haette mir das eigentlich so vorgestellt</p>
<pre><code class="language-cpp">int CreateEnemy() {

    enemy *creep;
    creep = new enemy(&quot;Knut&quot;);

    _life1   = rand() % _life + 1;
    _mana1   = rand() % _mana + 1;
    _level1  = rand() % _level + 1;
    _damage1 = rand() % _damage + 1;
    _ammor1  = rand() % _ammor + 1;

    return (creep-&gt;SetStatus( _life1, _mana1, _level1, _damage1, _ammor1 ));
}
</code></pre>
<p>wie bekomm ich des hin das es so funktioniert? oder geht des net?</p>
</blockquote>
<p>Wenn du im return creep-&gt;SetStatus schreibst, dann gibst du den Rückgabewert der Methode SetStatus zurück, nicht das Objekt selbst.<br />
Du müsstest das aufbröseln:</p>
<pre><code class="language-cpp">creep-&gt;SetStatus( _life1, _mana1, _level1, _damage1, _ammor1 );
return(creep);
</code></pre>
<p>Nid.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1163121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1163121</guid><dc:creator><![CDATA[Nidhogger]]></dc:creator><pubDate>Sat, 28 Oct 2006 14:35:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen Objekt, wie  macht man ein Objekt in einer Funktion global? on Sat, 28 Oct 2006 14:49:48 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=18363" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=58" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1163135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1163135</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 28 Oct 2006 14:49:48 GMT</pubDate></item></channel></rss>