<?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[Was zurückgeben?]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Situation:<br />
Ich habe zwei Klassen. Klasse A und Klasse B. Klasse A enthält einen Vektor von Klasse B. Dieser Vektor ist im Privatbereich der Funktion. Will der User auf den Vektor zugreifen, soll dies über eine Methode geschehen.<br />
Da der User eine ID eingeben soll, muss ich diese natürlich auf Gültigkeit überprüfen. Daraus entsteht also folgendes:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

class B
{
      private:
              int zahl;

      public:
             B() { zahl=0;}
             ~B() {}

             void set( int z ) { this-&gt;zahl = z; }
             int  get() { return this-&gt;zahl;}
};

class A
{
      private:
              std::vector&lt; B &gt; elems;

      public:
             A() {}
             ~A() { elems.clear(); }

             B get( int id )
             {
                  //prüfen, ob die ID existiert
                  if( id &gt;= 0  &amp;&amp;  id &lt; (int)this-&gt;elems.size() )
                  {
                      return (*this).elems[id];
                  }
                  else
                  {
                      //return ????;
                  }
             }  
};

int main()
{
    A bsp;

    //Das folgende sollte nicht funktionieren, da es ja noch keine elemente gibt.
    bsp.get( 0 ).set( 15 );
    cout &lt;&lt; bsp.get( 0 ).get() &lt;&lt; endl; //Ausgabe der Konsole: 15

    cin.get();
    return 0;
}
</code></pre>
<p>Nur was soll ich in A::get() zurückgeben, wenn das Element nicht existiert?<br />
Wenn ich nicht die Überprüfung vorher mache, dann stürzt das Programm logischerweise ab.<br />
Habt ihr da eine Idee?</p>
<p>Mfg. Christoph Ludwig</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249057/was-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 17:04:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249057.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Sep 2009 09:36:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was zurückgeben? on Wed, 02 Sep 2009 09:36:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Situation:<br />
Ich habe zwei Klassen. Klasse A und Klasse B. Klasse A enthält einen Vektor von Klasse B. Dieser Vektor ist im Privatbereich der Funktion. Will der User auf den Vektor zugreifen, soll dies über eine Methode geschehen.<br />
Da der User eine ID eingeben soll, muss ich diese natürlich auf Gültigkeit überprüfen. Daraus entsteht also folgendes:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

class B
{
      private:
              int zahl;

      public:
             B() { zahl=0;}
             ~B() {}

             void set( int z ) { this-&gt;zahl = z; }
             int  get() { return this-&gt;zahl;}
};

class A
{
      private:
              std::vector&lt; B &gt; elems;

      public:
             A() {}
             ~A() { elems.clear(); }

             B get( int id )
             {
                  //prüfen, ob die ID existiert
                  if( id &gt;= 0  &amp;&amp;  id &lt; (int)this-&gt;elems.size() )
                  {
                      return (*this).elems[id];
                  }
                  else
                  {
                      //return ????;
                  }
             }  
};

int main()
{
    A bsp;

    //Das folgende sollte nicht funktionieren, da es ja noch keine elemente gibt.
    bsp.get( 0 ).set( 15 );
    cout &lt;&lt; bsp.get( 0 ).get() &lt;&lt; endl; //Ausgabe der Konsole: 15

    cin.get();
    return 0;
}
</code></pre>
<p>Nur was soll ich in A::get() zurückgeben, wenn das Element nicht existiert?<br />
Wenn ich nicht die Überprüfung vorher mache, dann stürzt das Programm logischerweise ab.<br />
Habt ihr da eine Idee?</p>
<p>Mfg. Christoph Ludwig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770757</guid><dc:creator><![CDATA[ChristophLu]]></dc:creator><pubDate>Wed, 02 Sep 2009 09:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Was zurückgeben? on Wed, 02 Sep 2009 09:48:38 GMT]]></title><description><![CDATA[<p>Mach es doch genauso wie vector::at, das die gleiche Funktionalität bietet. Oder noch besser: Verwende vector::at, indem du einfach direkt <a href="http://elems.at" rel="nofollow">elems.at</a>(id) zurückgibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770763</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 02 Sep 2009 09:48:38 GMT</pubDate></item><item><title><![CDATA[Reply to Was zurückgeben? on Wed, 02 Sep 2009 11:48:12 GMT]]></title><description><![CDATA[<p>Du könntest alleine schon bei der Funktion Signatur eine falsche Eingabe verhindern, indem du kein <code>int</code> m sondern <code>unsigned int</code> als Typ erwartest. Und wenn dann jemand meint er müsse da etwas grösseres, als überhaupt möglich abfragen, dann schmeiss halt ne exception. (oder, wie schon gesagt biete beides an. Eine Funktion, die halt crasht und die andere, die eine exception wirft).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770828</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 02 Sep 2009 11:48:12 GMT</pubDate></item></channel></rss>