<?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[Anfänger: Nutzung von Objekten durch Objekte]]></title><description><![CDATA[<p>Hallo,</p>
<p>ein Problem, wie es eigentlich ständig auftritt, komme als Anfänger leider nicht auf die Lösung: Ein Objekt soll Arbeitsdaten eines Programms speichern (z.B. Daten zu Personen). Ein anderes Objekt ist der Nutzer dieses Speicherobjektes in dem Sinne, dass das ja auch eine Oberfläche (z.B. Qt) sein kann.</p>
<p>Die Lebenszeit des Speicherobjektes soll sich über die Lebenszeit des Nutzerobjektes erstrecken. Wie kann das Nutzerobjekt auf das Speicherobjekt zugreifen? Definiere/Initialisiere das Speicherobjekt im Konstruktor des Nutzers, und dann? Im Bespiel ist der Zugriff aus Methoden des Nutzerobjektes nicht möglich.</p>
<p>Wo nachschauen im C++-Primer oder ähnlichem?</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;

class storage
{
  public:
    storage(int b): a(b){};
    void change(int c){a = c;};
    void info(){std::cout &lt;&lt; &quot;gespeichert ist &quot; &lt;&lt; a &lt;&lt; std::endl;};
  private:
    int a;
};

class user
{
  public:
    user():b(14){storage s(b);
                 s.info();
                 s.change(modify(5));         // 1. V. -&gt; ok
//                  modify(5);              // 2. V. -&gt; nicht ok
                 s.info();
    };
    int modify(int a){b = a; return b;};      // 1. V. -&gt; ok
//     void modify(int a){b = a; s.change(b);}   // 2. V. -&gt; nicht ok
  private:
    int b;
};

int main(){
  user u;
}
</code></pre>
<p>Uwe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189851/anfänger-nutzung-von-objekten-durch-objekte</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 12:43:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189851.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Aug 2007 16:14:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Fri, 17 Aug 2007 16:14:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ein Problem, wie es eigentlich ständig auftritt, komme als Anfänger leider nicht auf die Lösung: Ein Objekt soll Arbeitsdaten eines Programms speichern (z.B. Daten zu Personen). Ein anderes Objekt ist der Nutzer dieses Speicherobjektes in dem Sinne, dass das ja auch eine Oberfläche (z.B. Qt) sein kann.</p>
<p>Die Lebenszeit des Speicherobjektes soll sich über die Lebenszeit des Nutzerobjektes erstrecken. Wie kann das Nutzerobjekt auf das Speicherobjekt zugreifen? Definiere/Initialisiere das Speicherobjekt im Konstruktor des Nutzers, und dann? Im Bespiel ist der Zugriff aus Methoden des Nutzerobjektes nicht möglich.</p>
<p>Wo nachschauen im C++-Primer oder ähnlichem?</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;

class storage
{
  public:
    storage(int b): a(b){};
    void change(int c){a = c;};
    void info(){std::cout &lt;&lt; &quot;gespeichert ist &quot; &lt;&lt; a &lt;&lt; std::endl;};
  private:
    int a;
};

class user
{
  public:
    user():b(14){storage s(b);
                 s.info();
                 s.change(modify(5));         // 1. V. -&gt; ok
//                  modify(5);              // 2. V. -&gt; nicht ok
                 s.info();
    };
    int modify(int a){b = a; return b;};      // 1. V. -&gt; ok
//     void modify(int a){b = a; s.change(b);}   // 2. V. -&gt; nicht ok
  private:
    int b;
};

int main(){
  user u;
}
</code></pre>
<p>Uwe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346475</guid><dc:creator><![CDATA[Pluto]]></dc:creator><pubDate>Fri, 17 Aug 2007 16:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Fri, 17 Aug 2007 16:37:11 GMT]]></title><description><![CDATA[<p>Pack die 'Daten-Objekte' (also die mit den Informationen, die später von einer Klasse verarbeitet/angezeigt werden) doch einfach in den privat-Teil (von<br />
'user') <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>Das Problem ist bei Dir, dass die erstellten Objekte natürlich auch nur im Konstruktor existieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346493</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 17 Aug 2007 16:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Fri, 17 Aug 2007 17:01:50 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Pack die 'Daten-Objekte' (also die mit den Informationen, die später von einer Klasse verarbeitet/angezeigt werden) doch einfach in den privat-Teil (von<br />
'user') <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>
</blockquote>
<p>Dann hätte man aber keine Kapselung der Daten (in storage) gegenüber einer Oberfläche (user) und der Code wäre schlecht portierbar.</p>
<blockquote>
<p>Das Problem ist bei Dir, dass die erstellten Objekte natürlich auch nur im Konstruktor existieren.</p>
</blockquote>
<p>Ja, eben! Und wie macht man das richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346511</guid><dc:creator><![CDATA[Pluto]]></dc:creator><pubDate>Fri, 17 Aug 2007 17:01:50 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Fri, 17 Aug 2007 17:05:52 GMT]]></title><description><![CDATA[<p>Pluto schrieb:</p>
<blockquote>
<p>Dann hätte man aber keine Kapselung der Daten (in storage) gegenüber einer Oberfläche (user) und der Code wäre schlecht portierbar.</p>
</blockquote>
<p>Doch na klar. Du musst natürlich Zugriffsmethode in 'storage' bereitstellen, mit denen dann die Daten in 'storage' aus 'user' manipuliert werden können. Das Verhältnis nennt man dann HAT-Beziehung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346516</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 17 Aug 2007 17:05:52 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Fri, 17 Aug 2007 20:49:27 GMT]]></title><description><![CDATA[<p>Danke, habe etwas über HAT- und KENNT-Beziehungen gelernt.</p>
<p>Uwe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346647</guid><dc:creator><![CDATA[Pluto]]></dc:creator><pubDate>Fri, 17 Aug 2007 20:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Fri, 17 Aug 2007 21:59:02 GMT]]></title><description><![CDATA[<p>irgendwas gefällt mir an dem codestil gar nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346673</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 17 Aug 2007 21:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Fri, 17 Aug 2007 22:32:14 GMT]]></title><description><![CDATA[<p>TravisG schrieb:</p>
<blockquote>
<p>irgendwas gefällt mir an dem codestil gar nicht</p>
</blockquote>
<p>Hm, was meinst Du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346695</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 17 Aug 2007 22:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: Nutzung von Objekten durch Objekte on Sat, 18 Aug 2007 09:40:50 GMT]]></title><description><![CDATA[<p>Die Klammern haben innen keinen abstand!<br />
{edfef;} anstatt { ffdgg; }<br />
Das macht schon viel aus, so sieht nicht so gepresst aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346786</guid><dc:creator><![CDATA[rgrg]]></dc:creator><pubDate>Sat, 18 Aug 2007 09:40:50 GMT</pubDate></item></channel></rss>