<?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[Member Variable Zugriff in verschachtelten Klassen??]]></title><description><![CDATA[<p>folgender Code:</p>
<pre><code class="language-cpp">class Group{

  int i,j;

  class A{

    funktion(){ i++; }
  }
  class B{

    funktion() {j--; }
  }

  funktion(){
   B:funktion();
   A:funktion();
  }

};
</code></pre>
<p>1. kann ich in den untergeordneten Klassen mit i und j arbeiten?<br />
2. kann ich auf funktionen der Klassen zugreifen ohne ein objekt der Klasse<br />
zu erzeugen??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166193/member-variable-zugriff-in-verschachtelten-klassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 07:34:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166193.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Nov 2006 08:02:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:03:00 GMT]]></title><description><![CDATA[<p>folgender Code:</p>
<pre><code class="language-cpp">class Group{

  int i,j;

  class A{

    funktion(){ i++; }
  }
  class B{

    funktion() {j--; }
  }

  funktion(){
   B:funktion();
   A:funktion();
  }

};
</code></pre>
<p>1. kann ich in den untergeordneten Klassen mit i und j arbeiten?<br />
2. kann ich auf funktionen der Klassen zugreifen ohne ein objekt der Klasse<br />
zu erzeugen??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182042</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:03:00 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:12:17 GMT]]></title><description><![CDATA[<p>Zweimal nein.</p>
<p>Durch Verschachteln der Klassen beeinflusst du nur die Namensauflösung und die Zugriffsrechte. Damit werden keine Instanzen aneinander gebunden. Und ohne Instanzen keine Member.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182046</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:12:17 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:16:53 GMT]]></title><description><![CDATA[<p>ok wie würde man das am besten lösen?? wenn ich divere klassen grouppieren will...??</p>
<p>und wie kann ich das lösen das dise unterklasssen auf ein allgeimesn objekt zugreifen ohen das diese global ist??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182048</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:16:16 GMT]]></title><description><![CDATA[<p>1.) Nur wenn i und j static sind.<br />
2.) Nur wenn die Methoden static sind.<br />
Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class foo
{
public:
    class bar
    {
    public:
        bar()
        {
            cout &lt;&lt; i &lt;&lt; &quot;\n&quot;;
            sayHello();
        }
    };

private:
    static int i;
    static void sayHello()
    {
        cout &lt;&lt; &quot;Hello\n&quot;;
    }
};
int foo::i = 12;

int main()
{
    foo::bar fb;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1182051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182051</guid><dc:creator><![CDATA[schorsch code]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:22:58 GMT]]></title><description><![CDATA[<p>Du könntest den Unterklassen eine Referenz auf ein Oberklassenobjekt mitgeben - dann haben sie ihre Instanz, mit der sie arbeiten können.</p>
<p>(Ansonsten: Wozu brauchst du das? Evt gibt es ja eine elegantere Lösung)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182053</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:29:07 GMT]]></title><description><![CDATA[<p>naja ich hab quasie ne Systemklasse, welche die verschieden Modul Klassen die zusammen das system ergeben zusammenfassen soll.. deswegen hätt ich gern so ne grouppierung.. mach mal ein beispeil CStoll!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182056</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:29:07 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:33:34 GMT]]></title><description><![CDATA[<p>Nur grob skizziert:</p>
<pre><code class="language-cpp">class System
{
public:
  class Modul1
  {
    System&amp; m_sys;
  public:
    Modul1(System&amp; sys) : m_sys(sys) {...}
    void print(string data)
    {
      m_sys.printer.print(data);
    }
  };
  friend class Modul1;

  ...

private:
  Printer printer;//Variable des Systems
  ...
};
</code></pre>
<p>PS: Wenn du nur EIN System hast, kannst du auch das Singleton-Pattern verwenden, um an deine Instanz ranzukommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182060</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:33:34 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 08:40:34 GMT]]></title><description><![CDATA[<p>kann ich nun über ein System Objekt auch auf die funktionen der interen modulklassen zugreifen??</p>
<p>wieso hast du das modul als friend deklariert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182064</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Nov 2006 08:40:34 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 09:10:22 GMT]]></title><description><![CDATA[<p>Wenn du auf einem Objekt arbeiten möchtest, brauchst du auch Zugriff auf ein solches. Wenn du also mit einem System-Objekt auf die Methoden eines Modul-Objekts zugreifen willst, muss das System entweder ein Modul-Objekt über seine zugreifende Methode als Parameter bekommen, oder der Zugriff muss über eine übergeordnete Variable gewährt sein. Falls es zu jedem Zeitpunkt immer nur ein System-Objekt geben soll, kann man für den Zugriff auf das System das Singleton-Entwurfsmuster anwenden.<br />
Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class system
{
public:
    static system &amp;exemplar()
    {
        static system dasSystem;
        return dasSystem;
    }

    class modul1
    {
    public:
        void test()
        {
            system::exemplar().sayHello();
        }
    };

    template&lt;typename TModul&gt;
    void testModul(TModul &amp;m)
    {
        m.test();
    }

    void testModul2()
    {
        m2.test();
    }

private:
    //Default- und Copy-Konstruktor privatisieren,
    //um die Erstellung von System-Objekten einzuschränken
    system(){}
    system(const system &amp;sys){}

    void sayHello()
    {
        cout &lt;&lt; &quot;Hello\n&quot;;
    }

    class modul2
    {
    public:
        void test()
        {
            cout &lt;&lt; &quot;Hier spricht modul2\n&quot;;
        }
    };

    modul2 m2;
};

int main()
{
    system::modul1 m1;
    m1.test();
    system::exemplar().testModul(m1);
    system::exemplar().testModul2();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1182083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182083</guid><dc:creator><![CDATA[schorsch code]]></dc:creator><pubDate>Mon, 27 Nov 2006 09:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 09:19:06 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>kann ich nun über ein System Objekt auch auf die funktionen der interen modulklassen zugreifen??</p>
</blockquote>
<p>Klar, wenn du ein Element der entsprechenden Modulklasse im System anlegst (z.B. könnte die Klasse 'Printer' im obigen Beispiel auch ein Modul sein).</p>
<blockquote>
<p>wieso hast du das modul als friend deklariert?</p>
</blockquote>
<p>Damit es auf die privaten Elemente des Systems zugreifen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182090</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 27 Nov 2006 09:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 09:22:13 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Damit es auf die privaten Elemente des Systems zugreifen kann.</p>
</blockquote>
<p>Das kann es sowieso, weil es eine interne Klasse ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182093</guid><dc:creator><![CDATA[schorsch code]]></dc:creator><pubDate>Mon, 27 Nov 2006 09:22:13 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 09:24:49 GMT]]></title><description><![CDATA[<p>schorsch code schrieb:</p>
<blockquote>
<p>Das kann es sowieso, weil es eine interne Klasse ist.</p>
</blockquote>
<p>WMKAHEMDFH <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/1182099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182099</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 27 Nov 2006 09:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 09:42:28 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>WMKAHEMDFH <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>Also KEINE Ahnung finde ich übertrieben. Immerhin habe ich es sowohl mit g++ (sogar mit -pedantic Option) als auch mit VC++2005 ausprobiert. Ok, vielleicht ist es trotzdem nur eine Compiler-Eigenheit, welche die beiden Compiler gemeinsam haben; hab den Standard leider nicht zur Hand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182120</guid><dc:creator><![CDATA[schorsch code]]></dc:creator><pubDate>Mon, 27 Nov 2006 09:42:28 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 09:48:31 GMT]]></title><description><![CDATA[<p>Mein Fehler, hatte die innere und äußere Klasse vertauscht.</p>
<p>schorsch code schrieb:</p>
<blockquote>
<p>Also KEINE Ahnung finde ich übertrieben.</p>
</blockquote>
<p>Ich auch. Deswegen war ja auch ein Ironie-Smily dran. Bitte nicht so ernst nehmen <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/1182125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182125</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 27 Nov 2006 09:48:31 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 10:11:57 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>naja ich hab quasie ne Systemklasse, welche die verschieden Modul Klassen die zusammen das system ergeben zusammenfassen soll.. deswegen hätt ich gern so ne grouppierung.. mach mal ein beispeil CStoll!!</p>
</blockquote>
<p>Hi,</p>
<p>also mal ganz abseits des bisherigen Trends: Das klingt für mich eher nach einem namespace als nach einer Klasse.<br />
Ich frage mich, ob das nicht eher eine Lösung für Dein Problem wäre. Innerhalb des Namespaces könntest Du ebenfalls lustig Konstanten, Objekte&amp;Co ablegen, die von allen Klassen sichtbar sind (ebenso &quot;globale Objekte&quot; in einem anonymen namespace)....</p>
<p>Denk' das doch mal durch...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182142</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 27 Nov 2006 10:11:57 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 10:50:23 GMT]]></title><description><![CDATA[<p>hmm simon2... das hört sich gar nich so schlecht an, aller dings weis ich nicht wie da mit namespaces funktiniert!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182169</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Nov 2006 10:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 10:58:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Siehe zum Beispiel <a href="http://tutorial.schornboeck.net/namespace.htm" rel="nofollow">hier</a>.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182179</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 27 Nov 2006 10:58:17 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 14:29:06 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>hmm simon2... das hört sich gar nich so schlecht an, aller dings weis ich nicht wie da mit namespaces funktiniert!!</p>
</blockquote>
<p>Naja, ich weiß nicht wirklich, ws Du genau vorhast, aber &quot;Bündeln&quot; kann man in namespaces prima:</p>
<pre><code class="language-cpp">namespace Group{

    namespace { 
        // anonymer namespace sorgt dafür, dass die außerhalb 
        // des namespaces&amp;Moduls nicht zu sehen sind
        int internesZeug;
    }

    namespace Constants {
        const int MeineKonstante;
    }

    class A {  
    public:
        static void funktion() { internesZeug++; }
    };
    class B{
    public:
        static void funktion() {internesZeug--; }
    };

    // eigentlich brauchst Du nichtmal eine Klasse:
    namespace lustigeToolFunktionen {
        void f1() { internesZeug = 0; }
    }

    funktion() {
        B::funktion(); 
        A::funktion();
        internesZeug *= Constants::MeineKonstante; // kannst auch direkt nutzen
    }
}

using Group::B::funktion;

int main() {
    Group::lustigeToolFunktionen::f1();
    Group::funktion();
    Group::A::funktion();
    funktion(); // ruft Group::B::funktion() auf
    return 0;
}
</code></pre>
<p>Nur mal ein wenig &quot;rumgefuddelt&quot; mit namespaces und Klassen.<br />
Wichtig: Möglichst nur dann eine Klasse bauen, wenn es sie wirklich Objekte beschreiben soll !<br />
(so gesehen sind meine obigen A und B &quot;schlechte Klassen&quot;)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182388</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:29:06 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 14:34:11 GMT]]></title><description><![CDATA[<p>hmm ja das ist das problem .. meine module werden nur einmal erzeugt, und fassen eigentlich diverse funktionen und parameter zusammen...</p>
<p>was ist denn eleganter namespaces oder singelton patterns??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182394</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 14:41:02 GMT]]></title><description><![CDATA[<p>dan würdest du statt der klassen A und B die wieder rum in ein namespace verpacken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182405</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:41:02 GMT</pubDate></item><item><title><![CDATA[Reply to Member Variable Zugriff in verschachtelten Klassen?? on Mon, 27 Nov 2006 14:42:29 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>hmm ja das ist das problem .. meine module werden nur einmal erzeugt, und fassen eigentlich diverse funktionen und parameter zusammen...</p>
<p>was ist denn eleganter namespaces oder singelton patterns??</p>
</blockquote>
<p>Das sind eigentlich keine Alternativen ... es geht eigentlich um die Frage &quot;Globale Variable oder Singleton&quot;; beide kannst Du sowohl in namespaces organisieren (was ich für schlau hielte)als auch ohne.<br />
Ob sich ein singleton lohnt, mag ich nicht beurteilen, aber es gibt zum Thema &quot;Globale Variablen vs Singleton&quot; schon Einiges in diesem Forum zu finden.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182410</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:42:29 GMT</pubDate></item></channel></rss>