<?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[Auf lokale Variable einer anderen Klassen Instanz zugreifen]]></title><description><![CDATA[<p>Hallole.</p>
<p>Also folgendes:</p>
<p>Ich habe eine Funktion.<br />
In diese Funktion erzeuge ich eine Instanz einer Klasse.<br />
Innerhalb der Memberfunktion dieser Klasse erzeuge ich eine weitere Instanz eine anderen <a href="http://Klasse.In" rel="nofollow">Klasse.In</a> einer Memberfunktion diese wiederum ermittle ich aus einem String einen bestimmten Wert.<br />
Diesen sollte ich nun in der Ausgangsfunktion haben.<br />
Es ist eine Multithreaded umgebung und es sollte sichergestellt sein, daß der Wert eindeutig ist und kein andere drin rumfummelt.</p>
<p>Beispiel:</p>
<pre><code>Ausgangsfunktion:

FKT_ausgang()
{
//Instanz erzeugen
CParseengine cp;

cp.M_parser(...);

//Hier sollte ich dann die ermittelte Variable haben:

std::string ergebnis = eindeutige_ID;

}

//M_Parser
BOOL CParseengine::M_Parser(void)
{
....

Instanz einer anderen Klasse erzeugen
CHttp ht;

//Hier wird die Variable ermittelt aus einem Eingangsstring
ht.M_login();

}

---

//Login
BOOL Chttp::M_login(void)
{
....
//Viel arbeit.
//IN CHttp gibts einen Membervariable welche in 
//dieser Funktion zugewiesen wird

std::string eindeutige_ID;
....

eindeutige_ID = &quot;93jklkmckmpülk098&quot;;
}
</code></pre>
<p>Ich hoffe ich konnte das Problemchen etwas beleuchten.<br />
Eine globale Variable kommt keinesfalls in Frage.</p>
<p>Mit ist noch eingefallen, ich könnte eine neue Klasse schreiben die von den ersten beider abgeleitet ist, dann hätte ich alle Variablen , oder?</p>
<p>Wie könnte man so etwas machen?</p>
<p>Danke für jeden Tip, Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203285/auf-lokale-variable-einer-anderen-klassen-instanz-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 12:11:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203285.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jan 2008 10:19:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auf lokale Variable einer anderen Klassen Instanz zugreifen on Mon, 21 Jan 2008 10:19:21 GMT]]></title><description><![CDATA[<p>Hallole.</p>
<p>Also folgendes:</p>
<p>Ich habe eine Funktion.<br />
In diese Funktion erzeuge ich eine Instanz einer Klasse.<br />
Innerhalb der Memberfunktion dieser Klasse erzeuge ich eine weitere Instanz eine anderen <a href="http://Klasse.In" rel="nofollow">Klasse.In</a> einer Memberfunktion diese wiederum ermittle ich aus einem String einen bestimmten Wert.<br />
Diesen sollte ich nun in der Ausgangsfunktion haben.<br />
Es ist eine Multithreaded umgebung und es sollte sichergestellt sein, daß der Wert eindeutig ist und kein andere drin rumfummelt.</p>
<p>Beispiel:</p>
<pre><code>Ausgangsfunktion:

FKT_ausgang()
{
//Instanz erzeugen
CParseengine cp;

cp.M_parser(...);

//Hier sollte ich dann die ermittelte Variable haben:

std::string ergebnis = eindeutige_ID;

}

//M_Parser
BOOL CParseengine::M_Parser(void)
{
....

Instanz einer anderen Klasse erzeugen
CHttp ht;

//Hier wird die Variable ermittelt aus einem Eingangsstring
ht.M_login();

}

---

//Login
BOOL Chttp::M_login(void)
{
....
//Viel arbeit.
//IN CHttp gibts einen Membervariable welche in 
//dieser Funktion zugewiesen wird

std::string eindeutige_ID;
....

eindeutige_ID = &quot;93jklkmckmpülk098&quot;;
}
</code></pre>
<p>Ich hoffe ich konnte das Problemchen etwas beleuchten.<br />
Eine globale Variable kommt keinesfalls in Frage.</p>
<p>Mit ist noch eingefallen, ich könnte eine neue Klasse schreiben die von den ersten beider abgeleitet ist, dann hätte ich alle Variablen , oder?</p>
<p>Wie könnte man so etwas machen?</p>
<p>Danke für jeden Tip, Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440431</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Mon, 21 Jan 2008 10:19:21 GMT</pubDate></item><item><title><![CDATA[Reply to Auf lokale Variable einer anderen Klassen Instanz zugreifen on Mon, 21 Jan 2008 10:29:17 GMT]]></title><description><![CDATA[<p>Versuch's mal mit Rückgabewerten <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">string Chttp::Login()
{
  string ID;
  ...
  return ID;
}

string CParseengine::Parse(...)
{
  Chttp ht;
  return ht.Login();
}

void FKT_Ausgang()
{
  CParseengine cp;
  string ergebnis = cp.Parse(...);
  ...
}
</code></pre>
<p>(Alternativ kannst du auch eine Referenz auf den String herumreichen, wo die einzelnen Funktionen ihre Daten eintragen &quot;dürfen&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440442</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 21 Jan 2008 10:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to Auf lokale Variable einer anderen Klassen Instanz zugreifen on Mon, 21 Jan 2008 10:31:59 GMT]]></title><description><![CDATA[<p>Wenn du einen Wert aus einer (wie tief auch immer geschachtelten) Funktion nach aussen weitergeben willst, gibts zwei Moeglichkeiten:</p>
<ol>
<li>Ueber den Rueckgabewert der Funktion</li>
<li>Du uebergibst der Funktion eine Referenz auf ein aussen liegendes Objekt desselben Typs, so dass du in der Funktion diesem Objekt den Wert zuweisen kannst.</li>
</ol>
<p>Bsp:</p>
<pre><code class="language-cpp">class MyClass;
MyClass myvalue;

//Version a)
MyClass foo() { return bla; }

myvalue = foo();  //myvalue hat jetzt den Wert von bla in der Funktion

//version b)
void bar(MyClass&amp; mc) { mc = blubb; }
bar(myvalue); //myvalue hat jetzt den  Wert von blubb in der Funktion
</code></pre>
<p>Anmerkungen zu deinem Code:<br />
- nutze die [cpp]-Tags an Stelle der code-tags, das macht es fuer andere uebersichtlicher<br />
- ruecke deinen Code ordentlich ein, das machts auch fuer dich uebersichtlicher<br />
- deine funktion FKT_ausgang() hat keinen Rueckgabewert, ich vermute mal dass dein Compiler dir das ankreidet mit irgendwelchen Bemerkungen zum Thema &quot;implicit return type int&quot; oder aehnlichem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440445</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Jan 2008 10:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to Auf lokale Variable einer anderen Klassen Instanz zugreifen on Mon, 21 Jan 2008 10:32:02 GMT]]></title><description><![CDATA[<p>Hi,<br />
das Problem ist also, dass es mehrere Threads gibt, welche Zugriff auf die lokale Variable benötigen? Sonst kannst du sie ja einfach zurueckgeben...<br />
In dem Fall mach doch eine Singleton-Instanz zur Verwaltung der IDs. Der Moeglichkeiten gibts viele.</p>
<p>Gruss,<br />
DeSoVoDaMu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440446</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Mon, 21 Jan 2008 10:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to Auf lokale Variable einer anderen Klassen Instanz zugreifen on Mon, 21 Jan 2008 11:07:05 GMT]]></title><description><![CDATA[<p>Danke für die schnellen Antworten.</p>
<p>Über Rückgabewerte wollte ich es eigentlich nicht machen, da ich irgendwann mal nimmer durchblick wer was wann zurückgibt.</p>
<p>Das mit der Referenz sieht gut aus, werde mir das mal überlegen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8156">@DeSoVoDaMu</a><br />
Was ist eine Singleton-Instanz?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@Pumuckl</a>:<br />
Die Tips werde ich beherzigen, habe das hier nicht kopiert, sondern reingeschreiben, drum der fehlende Rückgabewert.</p>
<p>Ich habe nun eine Klasse die von d 2 anderen erbt, somit habe ich alle Funktionen und vor allem meine ID.<br />
Da diese Klasse ja in der Hauptfunktion als lokale Instanz erzeugt wird, dürfte es keine Probleme wegen mehrfachzugriff geben.</p>
<p>Sehe ich das so richtig?<br />
Ist das so gut oder umständlich/unfug?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440476</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Mon, 21 Jan 2008 11:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to Auf lokale Variable einer anderen Klassen Instanz zugreifen on Mon, 21 Jan 2008 11:19:01 GMT]]></title><description><![CDATA[<blockquote>
<p>Über Rückgabewerte wollte ich es eigentlich nicht machen, da ich irgendwann mal nimmer durchblick wer was wann zurückgibt.</p>
</blockquote>
<p>Bitte? Aber du blickst durch wenn du fuer jedes Problem dieser Art eine neue Klasse erzeugst? *g*<br />
Man kann Funktionen auch kommentieren, dann sollte klar werden, was sie zurueckliefern.</p>
<blockquote>
<p>Was ist eine Singleton-Instanz?</p>
</blockquote>
<p>Singleton ist ein Design-Pattern. Es garantiert, dass man von einer Klasse nur ein einziges Objekt hat und auf dieses eigentlich von ueberall Zugriff.<br />
Dennoch ist es keine globale Variable. Siehe auch hier (4.2.):<br />
<a href="http://magazin.c-plusplus.net/artikel/Einf%FChrung%20in%20Design%20Patterns" rel="nofollow">http://magazin.c-plusplus.net/artikel/Einf�hrung in Design Patterns</a></p>
<blockquote>
<p>Ich habe nun eine Klasse die von d 2 anderen erbt, somit habe ich alle Funktionen und vor allem meine ID. ... Ist das so gut oder umständlich/unfug?</p>
</blockquote>
<p>Zugegebener maßen verstehe ich nicht wirklich, wie dir die Vererbung dabei hilft dein Problem zu lösen, aber gutes Design sieht definitiv anders aus.</p>
<p>Gruß,<br />
DeSoVoDaMu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440485</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Mon, 21 Jan 2008 11:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Auf lokale Variable einer anderen Klassen Instanz zugreifen on Tue, 22 Jan 2008 12:41:12 GMT]]></title><description><![CDATA[<p>Nun wenn ich meine CHttp von Parseenginge uableite dann habe ich alle in CParseengine verfügbaren variablen unter anderem auch meine ID.<br />
Somit kann ich innerhalb der CHttp, also M_Login meine ID beschreiben und sie in der lokalen funktion auslesen.</p>
<p>Ich schätze ich habe es oben falsch dargestellt.<br />
Ich brauche keine Lokale Variable in der FKT_ausgang sondern eine Membervariable von CParseengine.</p>
<p>Naja wie auch immer, es funktioniert so und ich habe durch diesen Thread wieder neue anreize bekommen.<br />
Werde mit das mit dem Singleton mal genauer ansehen.</p>
<p>Vielen Dank für die Hilfe, Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1441250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1441250</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Tue, 22 Jan 2008 12:41:12 GMT</pubDate></item></channel></rss>