<?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[Funktion über eine zweite Klasse aufrufen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne aus einer Klasse eine Funktion aus einer anderen Klasse aufrufen.<br />
Irgendwie bekomme ich aber ständig folgender Fehlermeldung:<br />
--------------------------------------------------------------------------<br />
/tmp/cc2lWSNw.o: In function <code>main': test.cpp:(.text+0x8d8): undefined reference to</code>B::fkt(unsigned int)'<br />
collect2: error: ld returned 1 exit status<br />
--------------------------------------------------------------------------</p>
<p>Der Quellcode wäre hier zulang, daher liste ich nur die wichtigen stellen auf</p>
<pre><code>class A{
    private:
    ....
    public:
     void fkt(unsigned int var);
};

void A::fkt(unsigned int var){
 //....
}

class B{
   private:
   //Array Zeiger für die Klasse A
   A *array[n];

   public:
   //Auf diese Stelle bezieht sich meine Frage
   //wie Stelle ich eine Verbindung zu diese Funktion
   //aus der Klasse A  her?
    void fkt(unsigned int var);
};

int main(){

  B b;

  b.fkt(5);

  return 0;
}
</code></pre>
<p>Ich schätze es ist etwas simples aber ich komme nicht darauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329243/funktion-über-eine-zweite-klasse-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 31 May 2026 02:37:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329243.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Nov 2014 22:55:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion über eine zweite Klasse aufrufen on Thu, 13 Nov 2014 23:37:37 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne aus einer Klasse eine Funktion aus einer anderen Klasse aufrufen.<br />
Irgendwie bekomme ich aber ständig folgender Fehlermeldung:<br />
--------------------------------------------------------------------------<br />
/tmp/cc2lWSNw.o: In function <code>main': test.cpp:(.text+0x8d8): undefined reference to</code>B::fkt(unsigned int)'<br />
collect2: error: ld returned 1 exit status<br />
--------------------------------------------------------------------------</p>
<p>Der Quellcode wäre hier zulang, daher liste ich nur die wichtigen stellen auf</p>
<pre><code>class A{
    private:
    ....
    public:
     void fkt(unsigned int var);
};

void A::fkt(unsigned int var){
 //....
}

class B{
   private:
   //Array Zeiger für die Klasse A
   A *array[n];

   public:
   //Auf diese Stelle bezieht sich meine Frage
   //wie Stelle ich eine Verbindung zu diese Funktion
   //aus der Klasse A  her?
    void fkt(unsigned int var);
};

int main(){

  B b;

  b.fkt(5);

  return 0;
}
</code></pre>
<p>Ich schätze es ist etwas simples aber ich komme nicht darauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427536</guid><dc:creator><![CDATA[mobile-freak]]></dc:creator><pubDate>Thu, 13 Nov 2014 23:37:37 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion über eine zweite Klasse aufrufen on Thu, 13 Nov 2014 23:08:14 GMT]]></title><description><![CDATA[<p>Die Fehlermeldung besagt, dass nirgendwo definiert wird, wie die Funktion B::fkt definiert ist. In Zeile 20 machst du nur bekannt, dass eine Funktion mit diesem Namen existiert (da fehlt übrigens noch ein Semikolon). Es fehlt ein Teil wie die Zeilen 8-10 für die Funktion A::fkt.</p>
<p>Ansonsten verstehe ich dein Problem nicht. Ruf die gewünschte Funktion einfach mit dem gewünschten Objekt auf. Ich vermute das gewünschte A-Objekt ist eines der Elemente von b.array? In dem Fall also einfach</p>
<pre><code>array[welcher_index_auch_immer_gemeint_ist].fkt(welche_zahl_auch_immer_gemeint_ist);
</code></pre>
<p><em>Eventuell</em> ist auch Vererbung das, was du suchst. Deine Beschreibung ist nicht klar genug, um sicher sagen zu können, was du möchtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427537</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 13 Nov 2014 23:08:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion über eine zweite Klasse aufrufen on Thu, 13 Nov 2014 23:39:46 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>... Es fehlt ein Teil wie die Zeilen 8-10 für die Funktion A::fkt.</p>
<p>Ansonsten verstehe ich dein Problem nicht. Ruf die gewünschte Funktion einfach mit dem gewünschten Objekt auf. Ich vermute das gewünschte A-Objekt ist eines der Elemente von b.array?</p>
</blockquote>
<p>Also du meinst ich sollte B::fkt(){...} hinzufügen. Aber genau das soll ich nicht machen.<br />
Ich hab noch etwas im Code ergänzt(Zeile 15). Das A-Objekt array soll ein Feld von Zeigern sein in der Klasse B. D.h. ich kann über die Klasse B auf die Attribute von der Klasse zugreifen.</p>
<p>Die Main ist ein Teil meiner Aufgabe, sie darf nicht verändert werden.<br />
Wie gesagt da es eine Aufgabe ist möchte ich mich allgemein Ausdrücken, da ich sonst ärger bekomme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427543</guid><dc:creator><![CDATA[mobile-freak]]></dc:creator><pubDate>Thu, 13 Nov 2014 23:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion über eine zweite Klasse aufrufen on Thu, 13 Nov 2014 23:45:34 GMT]]></title><description><![CDATA[<p>Dann erklär mal deine Aufgabenstellung. Ich habe keine Ahnung mehr, was du möchtest. Du scheinst irgendwie die Begriffe &quot;Objekt&quot;, &quot;Klasse&quot;, &quot;Attribut&quot; und &quot;Funktion&quot; falsch zu verstehen.</p>
<p>Und jetzt kommt auch noch wildes Gefrickel mit Arrays von Pointern hinzu? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427544</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 13 Nov 2014 23:45:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion über eine zweite Klasse aufrufen on Thu, 13 Nov 2014 23:53:16 GMT]]></title><description><![CDATA[<p>Ich möchte aus der Main über die Klasse B auf die Funktion aus der Klasse A zugreifen.<br />
Wie muss ich den Aufruf in der Klasse B realisieren?<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427546</guid><dc:creator><![CDATA[mobile-freak]]></dc:creator><pubDate>Thu, 13 Nov 2014 23:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion über eine zweite Klasse aufrufen on Fri, 14 Nov 2014 00:06:54 GMT]]></title><description><![CDATA[<p>Um eine Memberfunktion einer Klasse aufzurufen brauchst du zuallererst ein Objekt dieser Klasse! Klassenmemberfunktionen sind keine freien Funktionen, die beziehen sich immer auf ein konkretes Objekt. Welches A-Objekt soll dies sein? Diese Fragen kann auf zwei Arten und Weisen beantwortet werden:</p>
<p>-Du sagst, welches A-Objekt gemeint ist. Dann geht der Aufruf genau so, wie dein Aufruf von B::fkt in der main. Da gibst du ja auch konkret an, dass der Aufruf sich auf das B-Objekt mit dem Namen b beziehen soll.</p>
<p>-Oder du sagst, dass jedes B-Objekt auch ein A-Objekt ist und dass das gemeinte A-Objekt also das momentane B-Objekt ist. Das nennt man Vererbung.</p>
<p>Oder als dritte Möglichkeit die Meta-Antwort:<br />
-Keines der obigen, weil du eventuell den Zusammenhang zwischen Klassen, Objekten und Membern noch nicht richtig verstanden hast und deine Wünsche nicht klar ausdrücken konntest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427549</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 14 Nov 2014 00:06:54 GMT</pubDate></item></channel></rss>