<?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[error: nonstatic class member]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>also ich mache folgendes,</p>
<p>das ist die Deklaration:</p>
<pre><code>class HT{
    public:struct K{
           int v;
           void f();
           };
           int* d;
           K* k;
};
</code></pre>
<p>in HT.cpp will ich die Funktion f implementieren</p>
<pre><code>void HT::K::f(){
     int r = d[3]; //ein Zugriff aud array d
}
</code></pre>
<p>Das Problem ist, dass ich hier auf d nicht zugreifen darf und die Fehlermeldung invalid use of non-static class member bekomme.<br />
Dabei habe ich d extra public gemacht, und ich habe auch eine Variable vom Typ K in der Klasse HT.<br />
Ich verstehe nicht warum ich trotzdem nicht aus Funktion f auf d zugreifen darf.<br />
Kann hier vielleicht jemand ein Fehler entdecken?[code]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288700/error-nonstatic-class-member</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 17:25:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288700.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Jun 2011 12:00:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to error: nonstatic class member on Tue, 21 Jun 2011 12:00:23 GMT]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>also ich mache folgendes,</p>
<p>das ist die Deklaration:</p>
<pre><code>class HT{
    public:struct K{
           int v;
           void f();
           };
           int* d;
           K* k;
};
</code></pre>
<p>in HT.cpp will ich die Funktion f implementieren</p>
<pre><code>void HT::K::f(){
     int r = d[3]; //ein Zugriff aud array d
}
</code></pre>
<p>Das Problem ist, dass ich hier auf d nicht zugreifen darf und die Fehlermeldung invalid use of non-static class member bekomme.<br />
Dabei habe ich d extra public gemacht, und ich habe auch eine Variable vom Typ K in der Klasse HT.<br />
Ich verstehe nicht warum ich trotzdem nicht aus Funktion f auf d zugreifen darf.<br />
Kann hier vielleicht jemand ein Fehler entdecken?[code]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081597</guid><dc:creator><![CDATA[rimuru]]></dc:creator><pubDate>Tue, 21 Jun 2011 12:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to error: nonstatic class member on Tue, 21 Jun 2011 12:12:05 GMT]]></title><description><![CDATA[<p>rimuru schrieb:</p>
<blockquote>
<p>Kann hier vielleicht jemand ein Fehler entdecken?[code]</p>
</blockquote>
<p>Mehrere.</p>
<ol>
<li>hast du absolut kryptische Namen und eine gruselige Einrückung. Spätestens bei Projekten mit mehr als ~1000 Zeilen blickt da keiner mehr durch, auch du nicht, wenn du das mal ne Nacht liegen gelassen hast.</li>
<li>K ist eine eigene Klasse, die zwar innerhalb von HT definiert wird, aber dennoch sind die K's eigene Objekte. Ein K-Objekt hat also keine feste Beziehung zu irgendeinem HT-Objekt, deshalb gibts auch keine Möglichkeit für den Compiler rauszufinden, von welchem HT-Objekt du denn gerne das d[3] hättest. Ich schätze da liegt dein Denkfehler.</li>
<li>sieht das nach einem reichlich fragwürdigen Design aus - was willst du damit erreichen?</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2081610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081610</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 21 Jun 2011 12:12:05 GMT</pubDate></item><item><title><![CDATA[Reply to error: nonstatic class member on Tue, 21 Jun 2011 18:57:57 GMT]]></title><description><![CDATA[<p>Danke für die Ratschläge, das ist nicht mein wirklicher Code, den habe ich extra hingeschrieben um die Frage zu stellen.<br />
Jetzt verstehe ich es, ein K kann in mehreren HTs vorkommen und es ist unklar welches davon gemeint ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081822</guid><dc:creator><![CDATA[rimuru]]></dc:creator><pubDate>Tue, 21 Jun 2011 18:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to error: nonstatic class member on Tue, 21 Jun 2011 20:17:38 GMT]]></title><description><![CDATA[<p>rimuru schrieb:</p>
<blockquote>
<p>Danke für die Ratschläge, das ist nicht mein wirklicher Code, den habe ich extra hingeschrieben um die Frage zu stellen.<br />
Jetzt verstehe ich es, ein K kann in mehreren HTs vorkommen und es ist unklar welches davon gemeint ist.</p>
</blockquote>
<p>Schlimmer noch: K ist vollkommen unabhängig von HT. Du kannst Instanzen von K erstellen, ohne eine Instanz von HT zu haben. Du kannst Instanzen von HT haben, ohne Instanzen von K zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081873</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 21 Jun 2011 20:17:38 GMT</pubDate></item><item><title><![CDATA[Reply to error: nonstatic class member on Wed, 22 Jun 2011 07:43:05 GMT]]></title><description><![CDATA[<p>rimuru schrieb:</p>
<blockquote>
<p>Danke für die Ratschläge, das ist nicht mein wirklicher Code</p>
</blockquote>
<p>Dann ist das der Fehler - es gibt keinen Grund, nicht den echten Code hinzuschreiben (aufs Wesentliche reduziert)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081963</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 22 Jun 2011 07:43:05 GMT</pubDate></item></channel></rss>