<?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[Struktur in Klasse]]></title><description><![CDATA[<p>Hi,<br />
ich hab folgendes Problem: Ich hab eine Klasse, die eine Struktur enthält:</p>
<pre><code class="language-cpp">class A
{
   private:
   struct B
   {
      element 1
      ...
   };
  public:
   methode()
   {..}
};
</code></pre>
<p>Wie kann ich nun - per Konstruktor der Klasse A - die Elemente von struct B mit Werten initialisieren? Geht das nur, indem ich im Konstruktor eine Instanz von B erstelle? Also</p>
<pre><code class="language-cpp">A()
{
  B foo;
  foo.element1 = bar;
}
</code></pre>
<p>und wie könnte ich das über die Konstruktorliste realisieren?</p>
<p>2. Problem:<br />
Ich möchte gerne über die Methode der Klasse A auf die Elemente der Struktur zugreifen. Also ungefähr so:</p>
<pre><code class="language-cpp">methode()
{
this-&gt;(struct b).element1;
}
</code></pre>
<p>Das Problem hieran ist, dass ich nicht weiß, wie an die Elemente komme bzw. was ich anstelle (struct b) dort hinschreiben soll. Muss ich in der Methode selbst dann nochmal eine Instanz der Struktur B erstellen, um darüber dann Zugriff auf die Elemente zu erhalten? Das möchte ich möglichst umgehen, da oben im Konstruktor ja (evt.) schon eine Instanz von B erstellt wurde. Gibt es da noch eine andere Möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197389/struktur-in-klasse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 03:24:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197389.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Nov 2007 21:14:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struktur in Klasse on Fri, 09 Nov 2007 21:14:12 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich hab folgendes Problem: Ich hab eine Klasse, die eine Struktur enthält:</p>
<pre><code class="language-cpp">class A
{
   private:
   struct B
   {
      element 1
      ...
   };
  public:
   methode()
   {..}
};
</code></pre>
<p>Wie kann ich nun - per Konstruktor der Klasse A - die Elemente von struct B mit Werten initialisieren? Geht das nur, indem ich im Konstruktor eine Instanz von B erstelle? Also</p>
<pre><code class="language-cpp">A()
{
  B foo;
  foo.element1 = bar;
}
</code></pre>
<p>und wie könnte ich das über die Konstruktorliste realisieren?</p>
<p>2. Problem:<br />
Ich möchte gerne über die Methode der Klasse A auf die Elemente der Struktur zugreifen. Also ungefähr so:</p>
<pre><code class="language-cpp">methode()
{
this-&gt;(struct b).element1;
}
</code></pre>
<p>Das Problem hieran ist, dass ich nicht weiß, wie an die Elemente komme bzw. was ich anstelle (struct b) dort hinschreiben soll. Muss ich in der Methode selbst dann nochmal eine Instanz der Struktur B erstellen, um darüber dann Zugriff auf die Elemente zu erhalten? Das möchte ich möglichst umgehen, da oben im Konstruktor ja (evt.) schon eine Instanz von B erstellt wurde. Gibt es da noch eine andere Möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400599</guid><dc:creator><![CDATA[MaxM]]></dc:creator><pubDate>Fri, 09 Nov 2007 21:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur in Klasse on Fri, 09 Nov 2007 21:26:07 GMT]]></title><description><![CDATA[<p>Du mußt dann auch (mindestens) eine Instanz der Struktur innerhalb deiner Klasse erzeugen:</p>
<pre><code class="language-cpp">class A
{
   private:
   struct B
   {
      int element1;
      ...
   };
   B b; // Instanz von B
  public:
   methode()
   {
      b.element1 = 42; // Zuweisung
   }
};
</code></pre>
<p>Struktur und Klassen sind in C++ fast identisch, bis auf die Standardsichtbarkeit (public &lt;-&gt; private),<br />
d.h. du kannst auch bei der Struktur einen Konstruktor implementieren.</p>
<p>P.S. die Variable 'foo' in deinem Konstruktor ist völlig sinnlos, da sie lokal ist und am Ende der Funktion wieder automatisch gelöscht wird.<br />
Mir scheint, du kommst noch nicht ganz mit dem Erstellen von Klassen (und Strukturen) klar - ich hoffe, du hast ein gutes Buch/Tutorial zur Hand, sonst wirst die Zusammenhänge kaum verstehen (lernen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400603</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 09 Nov 2007 21:26:07 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur in Klasse on Fri, 09 Nov 2007 21:25:02 GMT]]></title><description><![CDATA[<p>Alles klar, vielen Dank für die schnelle Auskunft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400604</guid><dc:creator><![CDATA[MaxM]]></dc:creator><pubDate>Fri, 09 Nov 2007 21:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to Struktur in Klasse on Sat, 10 Nov 2007 00:37:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
    struct bar
    {
        std::size_t data;
        bar(std::size_t const&amp; data) : data(data) {}
    } m_inst;

public:
   foo() : m_inst(42) {}
   operator bar const&amp;() { return m_inst; }
};
</code></pre>
<p>... jetzt solltest du auch dein foo in bar casten können und dessen Funktionen aufrufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400673</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 10 Nov 2007 00:37:21 GMT</pubDate></item></channel></rss>