<?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[Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse]]></title><description><![CDATA[<p>Grüße!</p>
<p>Ich möchte gerne:</p>
<p>Klasse A hat DIREKTEN (schnellen) Zugriff auf die public oder privat? Methoden der Klasse B.</p>
<p>Wie macht man das?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154040/eine-klasse-hat-direkten-zugriff-auf-methoden-einer-anderen-klasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 21:32:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154040.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Jul 2006 21:52:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Sun, 23 Jul 2006 21:52:35 GMT]]></title><description><![CDATA[<p>Grüße!</p>
<p>Ich möchte gerne:</p>
<p>Klasse A hat DIREKTEN (schnellen) Zugriff auf die public oder privat? Methoden der Klasse B.</p>
<p>Wie macht man das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102826</guid><dc:creator><![CDATA[Klasse]]></dc:creator><pubDate>Sun, 23 Jul 2006 21:52:35 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Sun, 23 Jul 2006 22:58:52 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>wo ist das Problem?</p>
<pre><code class="language-cpp">class B;

class A
{
  ...
  int func(class&amp; B b) {return b.m_v;};
};

class B
{
  private :
  ...
  friend class A;
  int m_v;
};
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102845</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 23 Jul 2006 22:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Sun, 23 Jul 2006 23:03:07 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Wenn zwischen den Klassen A und B keine Beziehung besteht, dann bleibt dir wohl nur die Möglich keit Klasse B als friend von A zu deklarieren, wodurch Klasse A direkten Zugriff auf _alle_ Methoden von B hat.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class a;

class b
{
    private:
        void foo() const { cout &lt;&lt; &quot;hello world!&quot;; }
        friend class a; // Klasse a zum Freund erklären.
};

class a
{
    public:
        void bar(const b&amp; rhs) { rhs.foo(); } // geht aufgrund von friend-deklaration!
};

int main()
{
    a a_o;
    b b_o;
    a_o.bar(b_o);
}
</code></pre>
<p>Gruß, Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102849</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 23 Jul 2006 23:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Sun, 23 Jul 2006 23:37:48 GMT]]></title><description><![CDATA[<p>Und wenn Klasse B von Klasse A abgeleitet wird? Kann dann Klasse A schnell direkt auf Methoden von B zugreifen und umgekehrt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102850</guid><dc:creator><![CDATA[Klasse]]></dc:creator><pubDate>Sun, 23 Jul 2006 23:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Sun, 23 Jul 2006 23:44:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>wenn B von A abgeleitet ist, dann kann B auf alle public und protected-Member von A zugreifen. A kann nur auf Funktionen von B zugreifen, die in A als virtual angelegt wurden und in B übrschrieben werden.</p>
<p>bis bald<br />
aakri</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102852</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 23 Jul 2006 23:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Sun, 23 Jul 2006 23:54:52 GMT]]></title><description><![CDATA[<p>Es geht um performance.</p>
<p>Klasse A hat eine Funktion Tick(), diese soll jedoch die Funktion Tick() von Klasse B aufrufen und das gaaanz direkt und schnell.</p>
<p>Oder die Klasse A soll irgendwie direkt die Funktion Tick() der Klasse B aufrufen.</p>
<p>Wie macht man das am besten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102856</guid><dc:creator><![CDATA[Klasse]]></dc:creator><pubDate>Sun, 23 Jul 2006 23:54:52 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Mon, 24 Jul 2006 00:00:56 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>grundsätzlich kannst du mit inline die direkte Einbettung vorschlagen. Es gibt im Forumsmagazin einen Artikel darüber.<br />
Allerdings ist das wie gesagt nur ein Vorschlag für den Compiler. Überlass solche Mikrooptimierungen lieber ganz dem Compiler und kümmere dich lieber um stabilen effizienten Code.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102858</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 24 Jul 2006 00:00:56 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Mon, 24 Jul 2006 09:13:16 GMT]]></title><description><![CDATA[<p>Kan akaris 2. post nur zustimmen.</p>
<p>Wie sieht der Body von Tick() aus?</p>
<p>Performance ist auf modernen Systemen hochgradig nichtdeterministisch und hängt hauptsächlich von Speicherzugriffen ab. Bevor man nicht Zeiten gemessen hat (und das ist ein schwieriges Geschäft), sollte man jeder Optimierung mißtrauen.</p>
<p>-----------------</p>
<p>Auf Microlevel: Aufruf über Zeiger ist voll OK:</p>
<pre><code class="language-cpp">class B
{
  A * a;
  void Do() 
  { ...; 
    a-&gt;Tick(); 
    ... 
  }
}
</code></pre>
<p>Im schlimmsten fall muß gegenüber einem direkten Aufruf noch rein:</p>
<pre><code>mov register, [this]
mov ecx, [register+offset B::a]
</code></pre>
<p>Das kann gane 0 Takte kosten dauern wenn es von einer sonst unbeschäftigten Pipeline übernommen wird, oder auch mehrere Minuten (swapfile auf fauliger Diskette).</p>
<p>Wenn du die Methode aber so häufig aufrufst, daß sich deine Bedenken lohnen, sind die Register eh' schon geladen. Und wenn nicht, denk einfach dran: 3GHz, 4 pipelines, da schaffst du locker 5000000000 Befehle / Sekunde. Im Mittel und ohne Speicherzugriffe hinter dem 1st Level Cache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102969</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Mon, 24 Jul 2006 09:13:16 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Mon, 24 Jul 2006 14:23:12 GMT]]></title><description><![CDATA[<p>Naja, es ist so:</p>
<p>Klasse A soll Klasse B sozusagen &quot;steuern&quot;. Klasse A soll somit ohne performance-einbußen eine Methode von Klasse B aufrufen können.</p>
<p>Tick() ist ein frame, daher könnt ihr euch vorstellen, wie schnell das laufen sollte.</p>
<p>(Obwohl, ist es nicht eigentlich egal? Hauptsache mindestens 30x wird die Methode auugerufen?!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103208</guid><dc:creator><![CDATA[Klasse]]></dc:creator><pubDate>Mon, 24 Jul 2006 14:23:12 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Klasse hat DIREKTEN Zugriff auf METHODEN einer anderen Klasse on Mon, 24 Jul 2006 16:33:47 GMT]]></title><description><![CDATA[<p>Bei 30x pro Sekunde ist die Art des Aufrufs wirklich zu vernachlässigen. Ja, eine Handvoll Nanosekunden sind egal <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/1103315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103315</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Mon, 24 Jul 2006 16:33:47 GMT</pubDate></item></channel></rss>