<?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[Eleganteste Vorgehensweise &amp;quot;verlinken&amp;quot; von Variablen]]></title><description><![CDATA[<p>Hi,<br />
ich zermatere mir den Kopf über ein kleines Problem. Vielleicht kann mir jemand von Euch da weiterhelfen:</p>
<p>Ich suche eine einfache und möglichst elegante Möglichkeit Variablen zu &quot;verlinken&quot; sprich:<br />
Man hat mehrere Variablen irgendwo in seinem Programm und registriert die bei einer Klasse, welche sozusagen Zeiger auf die Variablen erstellt. Damit bekommt die Klasse immer mit wenn sich der Originalwert der Variable ändert.</p>
<p>Der Sinn des ganzen ist, dass ich mehrere Zustände von Variablen nach aussen hin per TCPSocket übertragen, aber die eigentliche Verwendung im Programm strikt von der eigentlichen Socket-Übertragung getrennt halten möchte.</p>
<p>Das Problem mit Zeigern ist aber nun, dass man entweder für jeden Datentyp eigene Zeiger deklarieren muss, oder man benutzt void-Zeiger, aber dann weiss man nichts über die Länge der Daten.</p>
<p>Eventuell gibts da auch die Möglichkeit mit Templates was zu machen, oder es gibt ein Entwurfsmuster welches sowas kann, aber mir fällt keine wirklich elegante Lösung zu so etwas ein.</p>
<p>Euch vllt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250964/eleganteste-vorgehensweise-quot-verlinken-quot-von-variablen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 18:48:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250964.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Sep 2009 12:52:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eleganteste Vorgehensweise &amp;quot;verlinken&amp;quot; von Variablen on Sun, 27 Sep 2009 12:52:28 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich zermatere mir den Kopf über ein kleines Problem. Vielleicht kann mir jemand von Euch da weiterhelfen:</p>
<p>Ich suche eine einfache und möglichst elegante Möglichkeit Variablen zu &quot;verlinken&quot; sprich:<br />
Man hat mehrere Variablen irgendwo in seinem Programm und registriert die bei einer Klasse, welche sozusagen Zeiger auf die Variablen erstellt. Damit bekommt die Klasse immer mit wenn sich der Originalwert der Variable ändert.</p>
<p>Der Sinn des ganzen ist, dass ich mehrere Zustände von Variablen nach aussen hin per TCPSocket übertragen, aber die eigentliche Verwendung im Programm strikt von der eigentlichen Socket-Übertragung getrennt halten möchte.</p>
<p>Das Problem mit Zeigern ist aber nun, dass man entweder für jeden Datentyp eigene Zeiger deklarieren muss, oder man benutzt void-Zeiger, aber dann weiss man nichts über die Länge der Daten.</p>
<p>Eventuell gibts da auch die Möglichkeit mit Templates was zu machen, oder es gibt ein Entwurfsmuster welches sowas kann, aber mir fällt keine wirklich elegante Lösung zu so etwas ein.</p>
<p>Euch vllt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784900</guid><dc:creator><![CDATA[hilfe_suchender]]></dc:creator><pubDate>Sun, 27 Sep 2009 12:52:28 GMT</pubDate></item><item><title><![CDATA[Reply to Eleganteste Vorgehensweise &amp;quot;verlinken&amp;quot; von Variablen on Sun, 27 Sep 2009 12:57:04 GMT]]></title><description><![CDATA[<p>Mit Rohen Zeigern solltest du nicht arbeiten. Für Arrays gibts std::vector und sonst kannst noch <a href="https://www.google.de/search?&amp;q=observer%20pattern" rel="nofollow">Google: observer pattern</a> und <a href="https://www.google.de/search?&amp;q=polymorphie%20vererbung" rel="nofollow">Google: polymorphie vererbung</a> anschauen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784903</guid><dc:creator><![CDATA[wanted DadOrAlive]]></dc:creator><pubDate>Sun, 27 Sep 2009 12:57:04 GMT</pubDate></item><item><title><![CDATA[Reply to Eleganteste Vorgehensweise &amp;quot;verlinken&amp;quot; von Variablen on Sun, 27 Sep 2009 14:03:36 GMT]]></title><description><![CDATA[<p>Hi,<br />
an Observer dachte ich auch schon. Allerdings erscheinen mir die Kosten recht hoch. Ich werde sicherlich an die 1000 Variablen haben die zu überwachen sind, das sind im wesentlichen auch nur bool's, char's und int's und nur einen einzigen Observer.</p>
<p>Das ganze soll auch auf einem Embedded System recht schnell laufen, da die Variablen Prozessdaten aus einer Anlage wiederspiegeln.</p>
<p>Wenn ich Observer benutzen will müsste ich ja jede dieser Variablen in eine Klasse packen...</p>
<p>Vielleicht noch andere Ideen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784935</guid><dc:creator><![CDATA[hilfe_suchender]]></dc:creator><pubDate>Sun, 27 Sep 2009 14:03:36 GMT</pubDate></item><item><title><![CDATA[Reply to Eleganteste Vorgehensweise &amp;quot;verlinken&amp;quot; von Variablen on Sun, 27 Sep 2009 14:27:35 GMT]]></title><description><![CDATA[<p>du erstellts für deine daten eine klasse, die alle von einer basisklasse<br />
erben. die kannst du dann registrieren.</p>
<pre><code class="language-cpp">struct base
{
    virtual const void *GetData() = 0;
    virtual unsinged GetLength() = 0;
};
class stringclass : public base
{
public:
    stringclass(const std::string &amp;pstr) : str(pstr){}
    const void *GetData()
    {
        return str.c_str();
    }
    unsinged GetLength()
    {
        return str.length();
    }
private:
    const std::string &amp;str; // &lt;---- ALS REFERENZ
};

class manager
{
public:
    void update()
    {
        for (unsigned i = 0; i &lt; vars.size(); ++i)
            send(vars[i]-&gt;GetData(), vars[i]-&gt;GetLength());
    }
private:
    std::vector&lt;base *&gt; vars;
};
</code></pre>
<p>natürlich bekommt der manager nicht mit, wenn sich ein wert ändert, aber<br />
das ließe mit proxy-klassen erreichen <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>edit:</p>
<p>post zu spät gesehen.<br />
sollte aber trotz klassen schnell sein. 1000 variablen sollte jedes gerät<br />
packen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1784940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1784940</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Sun, 27 Sep 2009 14:27:35 GMT</pubDate></item></channel></rss>