<?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[Verbung und Variablen]]></title><description><![CDATA[<p>Hallo zusammen.</p>
<p>Ich stehe gerade vor einem großen Problem, wo ich mir nicht weiterhelfen kann.</p>
<pre><code class="language-cpp">class XX{
   protected:
     int a;
};

class YY : public XX{
};
</code></pre>
<p>Dies soll mal als Beispiel dienen.</p>
<p>Ich möchte nun mit den Funktionen aus YY auf die Variable a zugreifen. Soweit kein Problem. Nur würde ich gerne nicht eine neue Instanz der Variable anlegen, sondern mit dem gleichen Inhalt weiterarbeiten, da Funktionen aus der Basis-und der Abgeleiteten Klasse den Inhalt verändern und brauchen.</p>
<p>Spontan fällt mir natürlich irgendetwas mit Zeigern ein, doch ich weiß leider nicht weiter.</p>
<p>Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175641/verbung-und-variablen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 04:04:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175641.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Mar 2007 19:16:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verbung und Variablen on Mon, 12 Mar 2007 19:16:29 GMT]]></title><description><![CDATA[<p>Hallo zusammen.</p>
<p>Ich stehe gerade vor einem großen Problem, wo ich mir nicht weiterhelfen kann.</p>
<pre><code class="language-cpp">class XX{
   protected:
     int a;
};

class YY : public XX{
};
</code></pre>
<p>Dies soll mal als Beispiel dienen.</p>
<p>Ich möchte nun mit den Funktionen aus YY auf die Variable a zugreifen. Soweit kein Problem. Nur würde ich gerne nicht eine neue Instanz der Variable anlegen, sondern mit dem gleichen Inhalt weiterarbeiten, da Funktionen aus der Basis-und der Abgeleiteten Klasse den Inhalt verändern und brauchen.</p>
<p>Spontan fällt mir natürlich irgendetwas mit Zeigern ein, doch ich weiß leider nicht weiter.</p>
<p>Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244256</guid><dc:creator><![CDATA[_Stefan__]]></dc:creator><pubDate>Mon, 12 Mar 2007 19:16:29 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Mon, 12 Mar 2007 19:35:20 GMT]]></title><description><![CDATA[<p>d.h. du willst ein und die selbe variable aller instanzen der klasse verwenden?<br />
wenn ja musst du sie mit &quot;static&quot; deklarieren.... dann igbt es die variable nur einmale für alle instanzen der klasse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244266</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 12 Mar 2007 19:35:20 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Mon, 12 Mar 2007 19:43:13 GMT]]></title><description><![CDATA[<p>ups, falsch verstanden... <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>was mein vorredner meint ist:</p>
<pre><code class="language-cpp">class XX{
   protected:
   static int a;
};

class YY : public XX{
};
</code></pre>
<p>somit ist <strong>XX::a</strong> nur ein einziges mal im system vorhanden bzw. in dem prozess.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244269</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Mon, 12 Mar 2007 19:43:13 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Mon, 12 Mar 2007 19:42:47 GMT]]></title><description><![CDATA[<p>hää??? und was ist nun?? hmm gut hab wohl recht ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244273</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 12 Mar 2007 19:42:47 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 07:45:26 GMT]]></title><description><![CDATA[<p>Wenn ich die Variable mit Static deklariere bekomme ich haufenweise Linker Error, wegen unaufgelösten Verweisen. Veilleicht liegt es daran, dass es bei mir eine ganze Struktur ist?</p>
<pre><code class="language-cpp">class XX{
   protected:
   static struct direntries{
       queue&lt;string&gt; aBilder, copy_aBilder;
       int count;
   }direntries;
};

class YY : public XX{
};
</code></pre>
<p>Aber wie greif ich nun darauf zu, ohne die unaufgelösten Verweise zu bekommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244466</guid><dc:creator><![CDATA[_Stefan__]]></dc:creator><pubDate>Tue, 13 Mar 2007 07:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 07:50:10 GMT]]></title><description><![CDATA[<p>Der Zugriff ist schon richtig über &quot;XX::direntries&quot;, allerdings mußt du die Variable noch definieren:</p>
<pre><code class="language-cpp">//an einer zentralen Stelle im Programm:
struct XX::direntries XX:direntries;
</code></pre>
<p>(übrigens ist es eine sehr schlechte Idee, für den struct-Typ und die Variable den selben Namen zu verwenden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244469</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Mar 2007 07:50:10 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 12:08:40 GMT]]></title><description><![CDATA[<p>Leider funktioniert das alles irgendwie nicht richtig. Ich hab jetzt deshalb mal ein kleines Beipielprogramm geschrieben. Villeicht /Hoffentlich kann mir jemand sagen, wo der Fehler liegt.</p>
<pre><code class="language-cpp">//////////
//main.cpp

#include &lt;iostream&gt;
#include &quot;k.cpp&quot;

int main()
{
   KLASSE1 kl1;
   KLASSE2 kl2;

   kl1.t1();
   kl2.t2();

   return 0;
}

//////////
//k.h

class KLASSE1{

   public:
      void t1(void);

  protected:
     static struct alpha{
        char* a;
        char* b;
     };

};

class KLASSE2 : public KLASSE{

   public:
   void t2(void);

};

//////////
//k.cpp

#include &lt;iostream&gt;

using namespace std;

#include &quot;k.h&quot;

void KLASSE1::t1(void)
{
   KLASSE1::alpha.a = &quot;erstens&quot;;
   KLASSE1::alpha.b = &quot;zweitens&quot;;
}

void KLASSE2::t2(void)
{
   cout &lt;&lt; KLASSE1::alpha.a&lt;&lt; &quot;\n&quot; &lt;&lt; KLASSE1::alpha.b;
}
</code></pre>
<p>Ich bekomme folgende Fehlermeldungen:<br />
In file included from k.cpp:5,<br />
from main.cpp:2:<br />
k.h:10: error: <code>static' can only be specified for objects and functions k.h:15: error: expected class-name before '{' token In file included from main.cpp:2: k.cpp: In member function</code>void KLASSE1::t1()':<br />
k.cpp:9: error: expected primary-expression before '.' token<br />
k.cpp:10: error: expected primary-expression before '.' token<br />
k.h: In member function <code>void KLASSE2::t2()': k.h:7: error:</code>struct KLASSE1::alpha' is protected<br />
k.cpp:15: error: within this context<br />
k.cpp:15: error: expected primary-expression before '.' token<br />
k.h:7: error: `struct KLASSE1::alpha' is protected<br />
k.cpp:15: error: within this context<br />
k.cpp:15: error: expected primary-expression before '.' token</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244612</guid><dc:creator><![CDATA[_Stefan__]]></dc:creator><pubDate>Tue, 13 Mar 2007 12:08:40 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 12:15:03 GMT]]></title><description><![CDATA[<p>/edit</p>
<p>Wenn ich das struct in public lege, verschwinden schon mal die &quot;is protected&quot; Fehler. Der Rest bleibt. btw müsste ich aber doch auf protected Zugriff haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244620</guid><dc:creator><![CDATA[_Stefan__]]></dc:creator><pubDate>Tue, 13 Mar 2007 12:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 12:27:42 GMT]]></title><description><![CDATA[<p>Erstens: .cpp's solltest du nicht per #include einbinden - in der main.cpp reicht ein <code>#include &quot;k.h&quot;</code></p>
<p>Zweitens: Du hast dort einen statischen Untertyp definiert - sowas mag C++ nicht. Besser sieht es so aus:</p>
<pre><code class="language-cpp">class Klasse1
{
  ...
protected:
  struct alpha_t
  { char*a,*b;}
  static alpha_t alpha;
};
</code></pre>
<p>Drittens: Ich wurde vor einer Weile belehrt, daß abgeleitete Klassen nur die &quot;eigene&quot; Instanz von protected-Membern verwenden dürfen. Und innerhalb der Klassen ist es auch eindeutig, welche Variable gemeint ist, also kannst du dort das &quot;Klasse1::&quot; weglassen.</p>
<p>Viertens: Und in der k.cpp fehlt noch ein Eintrag:</p>
<pre><code class="language-cpp">Klasse1::alpha_t Klasse1::alpha;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1244627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244627</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Mar 2007 12:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 12:44:49 GMT]]></title><description><![CDATA[<p>Soweit hab ich alles verstanden und ist auch klar. Wenn ich allerdings in der main ein #include &quot;k.h&quot; setze, bekomme ich unaufgelöste Verweise zu den Funktion.</p>
<p>Könntest du mal bitte den kompletten richtigen Code posten? <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/1244641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244641</guid><dc:creator><![CDATA[_Stefan__]]></dc:creator><pubDate>Tue, 13 Mar 2007 12:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 12:50:46 GMT]]></title><description><![CDATA[<p>Du mußt die beiden CPP-Files auch getrennt compilieren und dann vom Linker zusammenführen lassen (welchen Compiler verwendest du? davon hängt es ab, wie du das machen mußt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244646</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Mar 2007 12:50:46 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 12:57:06 GMT]]></title><description><![CDATA[<p>Ich benutze g++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244651</guid><dc:creator><![CDATA[_Stefan__]]></dc:creator><pubDate>Tue, 13 Mar 2007 12:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to Verbung und Variablen on Tue, 13 Mar 2007 13:11:15 GMT]]></title><description><![CDATA[<p>Alles klar, vielen Dank.<br />
Habs hinbekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1244666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1244666</guid><dc:creator><![CDATA[_Stefan__]]></dc:creator><pubDate>Tue, 13 Mar 2007 13:11:15 GMT</pubDate></item></channel></rss>