<?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[von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen]]></title><description><![CDATA[<p>Wie mach ich das, wenn ich eine Klasse habe, und in der Klasse befindet sich ein struct, und dieses struct wird als parameter an eine funktion übergeben, und nun will ich in der Funktion über das &quot;struct objekt&quot; eine methode aus der Klasse aufrufen. Mh hört sich bissel konfus an?<br />
Also:</p>
<pre><code class="language-cpp">class A
{
    public:
    struct temp
    {
       ...bla.bla.bla
    }
    inline short get_x() const {return x;}
    private:
    short x;
}

...
....
void func(A::temp &amp;thing)
{
     ...
     so und nun möchte ich über das Objekt &quot;thing&quot; &quot;get_x()&quot; von der Klasse A
     aufrufen, in dem sich ja auch &quot;struct temp&quot; beinfdet, und somit auch das
     Objekt &quot;thing&quot;? Irgendwie muss das doch gehen oder?
}
</code></pre>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191913/von-quot-struct-quot-innerhalb-klasse-auf-klassenmtehode-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 07:45:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191913.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Sep 2007 10:39:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 10:39:44 GMT]]></title><description><![CDATA[<p>Wie mach ich das, wenn ich eine Klasse habe, und in der Klasse befindet sich ein struct, und dieses struct wird als parameter an eine funktion übergeben, und nun will ich in der Funktion über das &quot;struct objekt&quot; eine methode aus der Klasse aufrufen. Mh hört sich bissel konfus an?<br />
Also:</p>
<pre><code class="language-cpp">class A
{
    public:
    struct temp
    {
       ...bla.bla.bla
    }
    inline short get_x() const {return x;}
    private:
    short x;
}

...
....
void func(A::temp &amp;thing)
{
     ...
     so und nun möchte ich über das Objekt &quot;thing&quot; &quot;get_x()&quot; von der Klasse A
     aufrufen, in dem sich ja auch &quot;struct temp&quot; beinfdet, und somit auch das
     Objekt &quot;thing&quot;? Irgendwie muss das doch gehen oder?
}
</code></pre>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361187</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 08 Sep 2007 10:39:44 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 10:58:11 GMT]]></title><description><![CDATA[<p>Meines Wissens geht das nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361194</guid><dc:creator><![CDATA[nep]]></dc:creator><pubDate>Sat, 08 Sep 2007 10:58:11 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 11:03:24 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>das struct temp braucht dann einen Pointer/Referenz auf A, um die Objektverbindung herzustellen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361197</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 08 Sep 2007 11:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 11:15:41 GMT]]></title><description><![CDATA[<p>Mh du meinst dann sowas irgendwie?</p>
<pre><code class="language-cpp">...
struct temp
{
    A pointer;
}
....

A::temp()
:pointer(*this)
{

}
</code></pre>
<p>Oder wie würdest du das dann machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361203</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 08 Sep 2007 11:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 12:00:13 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
public:
    foo() : m_bar(this) {}

public:
    struct bar
    {
        std::size_t data;
    public:
        const foo* get_foo() const { return parent; }

    private:
        const foo* parent;
        bar(const foo* parent) : parent(parent) {}
    };
    short const&amp; get_x() const { return m_x; }

private:
    short m_x;
    bar m_bar;
};

void func(const foo::bar&amp; ref)
{
    std::cout &lt;&lt; ref.get_foo()-&gt;get_x() &lt;&lt; std::endl;
}
</code></pre>
<p>so wäre das ganz gut. Du verhinderst, das dir jemand was an deinem parent rumfuscht und kannst aber gleichzeitig auf dein parent (class foo) zugreifen ... Muss du nur selbst wissen, ob du nen const-Zeiger nimmst oder nicht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1361226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361226</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 08 Sep 2007 12:00:13 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 12:16:15 GMT]]></title><description><![CDATA[<p>nunja es gäbe da noch ein weg über FIELD_OFFSET und reinterpret_cast: nicht so elegant.</p>
<p>Das this in der init-liste wird aber auch ne warnung produzieren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361238</guid><dc:creator><![CDATA[giuiguiu]]></dc:creator><pubDate>Sat, 08 Sep 2007 12:16:15 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 12:38:47 GMT]]></title><description><![CDATA[<p>Ui ui ui, jetzt wird der Code aber langsam Hardcore, ich musst da jetzt wirklich 20mal hinschaun bis ichs gecheckt hab, hoffentlich gewöhn ich mich an sowas :D. Aber es funzt. Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361247</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sat, 08 Sep 2007 12:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 12:50:27 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class foo
{
public:
    foo() : m_bar(this) {}

public:
    struct bar
    {
        std::size_t data;
    public:
        const foo* get_foo() const { return parent; }

    private:
        const foo* parent;
        bar(const foo* parent) : parent(parent) {}
    };
    short const&amp; get_x() const { return m_x; }

private:
    short m_x;
    bar m_bar;
};

void func(const foo::bar&amp; ref)
{
    std::cout &lt;&lt; ref.get_foo()-&gt;get_x() &lt;&lt; std::endl;
}
</code></pre>
</blockquote>
<p>Kann das mal einer erklären. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Bei mir kompiliert das nicht. (Zeile 4)<br />
error C2248: 'foo::bar::bar': Kein Zugriff auf private Element, dessen Deklaration in der Klasse &quot;foo::bar&quot; erfolgte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361253</guid><dc:creator><![CDATA[hä???]]></dc:creator><pubDate>Sat, 08 Sep 2007 12:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 13:00:47 GMT]]></title><description><![CDATA[<p>Den Konstruktor von bar sollte man hier schon public machen oder du machst bar bei foo zum friend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361266</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Sat, 08 Sep 2007 13:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 13:11:51 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>nur mal zur Aufklärung (und dann wird wohl auch klar, warum Dein Ansatz so nicht funktionieren kann): Ob ein struct innerhalb oder außerhalb einer Klasse deklariert ist, hat (fast) keine Auswirkungen !!</p>
<p>Es ist also (fast) egal, ob Du schreibst:</p>
<p>Stromberg schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class A
{
    public:
    struct temp
    {
    };
};
</code></pre>
</blockquote>
<p>Oder</p>
<pre><code class="language-cpp">class A
{
};

struct temp
{
};
</code></pre>
<p>Objekte der jeweiligen Klassen/structs &quot;sehen sich&quot; jeweils gleich gut/schlecht.<br />
Ergo: Was im 2. Beispiel nicht geht, geht auch im ersten nicht.</p>
<p>Einzige Ausnahme: Wenn ich eine &quot;inner class&quot; als &quot;private&quot; deklariere, ist sie außerhalb der &quot;outer class&quot; absolut unbekannt. (Also kann ich auch außerhalb kein Objekt dieser Klasse anlagen).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361275</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 08 Sep 2007 13:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to von &amp;quot;struct&amp;quot; innerhalb Klasse auf Klassenmtehode zugreifen on Sat, 08 Sep 2007 13:44:36 GMT]]></title><description><![CDATA[<p>Ähm ja der Konstruktor muss natürlich public sein. Hatte ich vergessen davor zu setzten(public:) ... sry ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1361315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1361315</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 08 Sep 2007 13:44:36 GMT</pubDate></item></channel></rss>