<?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[Wie kann ich eine Klasse als Parameter übergeben?]]></title><description><![CDATA[<p>Moin, Moin,</p>
<p>ich habe eine Klasse (Stapel genannt), die eine Funktion top hat, die die Größe eines Arrays ermittelt. Das funktioniert auch.<br />
Jetzt möchte ich gerne die Größe einer anderen Instanz ermitteln. Dazu habe ich eine weitere Funktion (GR) geschrieben. Ich erhalte allerdings die Fehlermeldung:<br />
error: `int stapel::GR' is not a static member of `class stapel'|</p>
<p>Ich kann ehrlich gesagt nichts mit anfangen. Wie kann ich auf eine andere Instanz zugreifen?<br />
Viele Grüße<br />
Jörg</p>
<pre><code class="language-cpp">class stapel
{
    public:
    int top();          //oberstes Element lesen
    void ini();         // 1. Stapel bauen
    int GR (class sa);   //spätere öff. Function
    int data[SIZE];
    int topIndex;
};
void stapel::ini()                  //initialisiert Stapel A
{
    int n;
    for(n=0;n&lt;SIZE;n++)       //Felder mit Werten belegen
    {
        data[n]=SIZE-n;
    }
    topIndex=n-1;
}
int stapel::top()           //oberstes Element lesen
{
    return data[topIndex];
}
int stapel::GR(class *sa)
{
    sa.top();
    return 0;
}
int main()
{
    stapel A, B,*ptr ;
    A.ini();
    A.top();
    ptr=&amp;A;
    B.GR(&amp;ptr);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/233688/wie-kann-ich-eine-klasse-als-parameter-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 18:49:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233688.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Feb 2009 18:28:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 18:28:12 GMT]]></title><description><![CDATA[<p>Moin, Moin,</p>
<p>ich habe eine Klasse (Stapel genannt), die eine Funktion top hat, die die Größe eines Arrays ermittelt. Das funktioniert auch.<br />
Jetzt möchte ich gerne die Größe einer anderen Instanz ermitteln. Dazu habe ich eine weitere Funktion (GR) geschrieben. Ich erhalte allerdings die Fehlermeldung:<br />
error: `int stapel::GR' is not a static member of `class stapel'|</p>
<p>Ich kann ehrlich gesagt nichts mit anfangen. Wie kann ich auf eine andere Instanz zugreifen?<br />
Viele Grüße<br />
Jörg</p>
<pre><code class="language-cpp">class stapel
{
    public:
    int top();          //oberstes Element lesen
    void ini();         // 1. Stapel bauen
    int GR (class sa);   //spätere öff. Function
    int data[SIZE];
    int topIndex;
};
void stapel::ini()                  //initialisiert Stapel A
{
    int n;
    for(n=0;n&lt;SIZE;n++)       //Felder mit Werten belegen
    {
        data[n]=SIZE-n;
    }
    topIndex=n-1;
}
int stapel::top()           //oberstes Element lesen
{
    return data[topIndex];
}
int stapel::GR(class *sa)
{
    sa.top();
    return 0;
}
int main()
{
    stapel A, B,*ptr ;
    A.ini();
    A.top();
    ptr=&amp;A;
    B.GR(&amp;ptr);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1659658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659658</guid><dc:creator><![CDATA[JoergL67]]></dc:creator><pubDate>Sat, 07 Feb 2009 18:28:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 18:36:01 GMT]]></title><description><![CDATA[<p>Ich verstehe zwar nicht was du meinst, aber ich glaube du willst die Klasse mit parametern instalieseiren.</p>
<p>Dafür kannst du einen Konstruktor verwendet, der hat in der Regel sich selbst(Die eigene Klasse) als Datentyp.</p>
<pre><code class="language-cpp">class stapel
{
    public:
    stapel(...Parameter...); // Kontruktor
    int top();          //oberstes Element lesen
    void ini();         // 1. Stapel bauen
    int GR (class sa);   //spätere öff. Function
    int data[SIZE];
    int topIndex;
};
stapel::stapel(...Parameter...)
{
   // Do Stuff
}

void stapel::ini()                  //initialisiert Stapel A
{
    int n;
    for(n=0;n&lt;SIZE;n++)       //Felder mit Werten belegen
    {
        data[n]=SIZE-n;
    }
    topIndex=n-1;
}
int stapel::top()           //oberstes Element lesen
{
    return data[topIndex];
}
int stapel::GR(class *sa)
{
    sa.top();
    return 0;
}
int main()
{
    stapel EinStapel(); // Mir parametern...
    stapel A, B,*ptr ;
    A.ini();
    A.top();
    ptr=&amp;A;
    B.GR(&amp;ptr);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1659663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659663</guid><dc:creator><![CDATA[Wikinger75]]></dc:creator><pubDate>Sat, 07 Feb 2009 18:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 18:41:37 GMT]]></title><description><![CDATA[<p>nach deinem code der anwendung schätze ich du meinst das...</p>
<pre><code class="language-cpp">int stapel::GR(stapel *sa)
{
    sa-&gt;top();
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1659670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659670</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Sat, 07 Feb 2009 18:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 18:41:24 GMT]]></title><description><![CDATA[<p>nein, das meinte ich nicht.<br />
In meinem Stapel A möchte ich die Funktion GR aufrufen, die mir die Spapelhöhe von B ausgibt, also in der Art <a href="http://A.GR" rel="nofollow">A.GR</a>(B). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659674</guid><dc:creator><![CDATA[JoergL67]]></dc:creator><pubDate>Sat, 07 Feb 2009 18:41:24 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 18:45:46 GMT]]></title><description><![CDATA[<p>JoergL67 schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">class stapel
{
...
    int GR (stapel sa);
...
};
...
int stapel::GR(stapel sa)
{
...
</code></pre>
</blockquote>
<p>Das erzeugt eine lokale Kopie, alternativ kannst Du auch eine Referenz übergeben ( <code>GR (stapel&amp; sa);</code> besser eine const-Referenz <code>GR (stapel const&amp; sa);</code> ).<br />
Insgesamt:<br />
A) ini(t)-Funktion ist schlecht, richtig wäre ein Konstruktor<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_sunglasses"
      title="B)"
      alt="😎"
    /> const-correctness solltest Du gleich mit bedenken: Wenn eine Memberfunktion das Objekt nicht verändert, sollte sie const deklariert sein:</p>
<pre><code class="language-cpp">int GR(....) const;
</code></pre>
<p>und wenn eine Funktion ihren Parameter nicht verändert sollte sie diesen const deklarieren:</p>
<pre><code class="language-cpp">int GR(stapel const&amp; ...)
</code></pre>
<p>C) Was Deine GR()-Funktion macht, scheint mir seeeeehr &quot;ungewöhnlich&quot; zu sein:<br />
1.) Ich hätte erwartet, dass eine Memberfunktion namens &quot;GR(össe)&quot; die Größe des aktuellen Objekts zurückgibt (so wie &quot;size()&quot; bei string und vector) ... und nicht die eines anderen Objekts<br />
2.) Ansonsten tut's eine freie Fnuktion (besser)<br />
3.) was die Implementierung (&quot;sa.top()...&quot;) mit der Beschreibung zu tun hat, ist mir gerade nicht klar.<br />
D) Du wirst vermutlich bald zu den Punkt kommen, die Größe von &quot;daten&quot; zu verändern; wenn Du daraus gleich einen std::vector&lt;int&gt; machst (s.a. <a href="http://cppreference.com" rel="nofollow">cppreference.com</a>), hast Du das gleich einfach, sicher,standardisiert, ... mitgeliefert.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659682</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 07 Feb 2009 18:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 18:46:51 GMT]]></title><description><![CDATA[<p>Naja siehs mal so, die staplehöhe definierst du ja nie, du setzt die feldwerte intern nie auf null also könnten man auch nicht auf != Null hochzählen wieviel drinne ist und wenn du vom einen stapel wissen willst wie groß der andere ist musst du stapel übergeben, so wie ichs gezeigt hab geht das. ( eine möglichkeit von mehreren )</p>
<p>//Edit: schade simon kam mir zuvor <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659683</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Sat, 07 Feb 2009 18:46:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 18:53:00 GMT]]></title><description><![CDATA[<p>Ähm Danke erstmal. <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="🙂"
    /><br />
Muss Eure Tipps erstmal ausprobieren. Auf jeden Fall ist das Prog schon mal lauffähig.<br />
Was macht sa-&gt;top(); denn?<br />
Der Pfeil ist mir noch gar nicht geläufig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659690</guid><dc:creator><![CDATA[JoergL67]]></dc:creator><pubDate>Sat, 07 Feb 2009 18:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 19:02:30 GMT]]></title><description><![CDATA[<p>Scheiße, lesen müsste man können.<br />
Für den Größenvergleich darf ich sogar eine einfache Funktion verwenden. Und ich versuch die ganze Zeit die Funktion als Memberfunktion in die Klasse reinzukriegen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659695</guid><dc:creator><![CDATA[JoergL67]]></dc:creator><pubDate>Sat, 07 Feb 2009 19:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 19:14:12 GMT]]></title><description><![CDATA[<p>-&gt; Was macht sa-&gt;top(); denn?</p>
<p>-&gt; dereferenziert den zeiger und wendet den . aufs object an, ausgeschriebene form: (*Objekt).Methode();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659705</guid><dc:creator><![CDATA[Schurke]]></dc:creator><pubDate>Sat, 07 Feb 2009 19:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 19:33:14 GMT]]></title><description><![CDATA[<p>Ein Dankeschön an alle, insbesondere auch an Simon für die &quot;Extras&quot; <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/1659721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659721</guid><dc:creator><![CDATA[JoergL67]]></dc:creator><pubDate>Sat, 07 Feb 2009 19:33:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 19:45:36 GMT]]></title><description><![CDATA[<p>Wikinger75 schrieb:</p>
<blockquote>
<p>... instalieseiren.</p>
</blockquote>
<p>Geiles Wort <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
SCNR!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659724</guid><dc:creator><![CDATA[OhneWiderstand]]></dc:creator><pubDate>Sat, 07 Feb 2009 19:45:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sat, 07 Feb 2009 19:51:43 GMT]]></title><description><![CDATA[<p>Das ist wie pumuckls geile Signatur <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> die hat er auch von einem User der da ein paar Buchstaben durcheiander gewurfen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1659728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659728</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Sat, 07 Feb 2009 19:51:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Sun, 08 Feb 2009 11:23:14 GMT]]></title><description><![CDATA[<p>Spielst du auf <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-212311.html" rel="nofollow">diesen</a> Thread an? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
pumuckl hat inzwischen aber eine andere Signatur...</p>
<p>Du könntest bei dir die For-Schleife auch ohne Abstände schreiben, nämlich so: for(;;). <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/1659887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1659887</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 08 Feb 2009 11:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich eine Klasse als Parameter übergeben? on Mon, 09 Feb 2009 06:43:40 GMT]]></title><description><![CDATA[<p>Ja das war der Thread, ich hab die &quot;for&quot;-ever aus Schönheitsgründen so gestaltet :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660301</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 09 Feb 2009 06:43:40 GMT</pubDate></item></channel></rss>