<?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[Konstruktor Poblemm ?]]></title><description><![CDATA[<p>Allso ich habe folgendes problem ...<br />
Wen ich mein Programm Compiliere was auch ohne probleme klappt und mir ein array mässiges objekt erstelle aus meiner klasse &quot;punkt_3D_klasse&quot; und dann zum letzten eintrag im array (gehe bei 5 arrays eintrag 4) und mir von den 3 Variablen die werte ausgeben lase erhalte ich immer irgendwelche zahlen anstadt 0 wie ich im Konstruktor angegeben habe woher kommt das ? Funktionierte an der Stelle der Konstruktor nicht so das den Variablen keine Werte zugewiesen wurden und so eine Zufällige zahl rauskommt die im RAM an den Platz standt ?</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class punkt_3D_klasse {
    int x_pos,y_pos,z_pos;
public :
    punkt_3D_klasse(void){
        x_pos = 0;
        y_pos = 0;
        z_pos = 0;
    }

    int get_position(int k){
        int rv;
        switch(k){
            case 0:
                rv = x_pos;
                break;
            case 1:
                rv = y_pos;
                break;
            case 2:
                rv = z_pos;
                break;
        }
        return rv;
    }

    bool move(int r,int w) {
        bool rv = 0;
        switch(r){
            case 0:
                x_pos+=w;
                rv = 1;
                break;
            case 1:
                x_pos-=w;
                rv = 1;
                break;
            case 2:
                y_pos+=w;
                rv = 1;
                break;
            case 3:
                y_pos-=w;
                rv = 1;
                break;
            case 4:
                z_pos+=w;
                rv = 1;
                break;
            case 5:
                z_pos-=w;
                rv = 1;
                break;
        }
        return rv;
    }
};

int main(int argc, char** argv) {
    int x;
    cout&lt;&lt;&quot;Wieviele 3D Punkte sollen erstellt werden ?&quot;&lt;&lt;endl;
    cin&gt;&gt;x;
    x--;
    punkt_3D_klasse punkt[x];
    int action;
    int p_choose = 0;
    int move = 0;
    int choo = 0;
    while(true){
        system(&quot;cls&quot;);
        cout&lt;&lt;&quot;Momentaner punkt: &quot;&lt;&lt;p_choose&lt;&lt;endl&lt;&lt;&quot;Was willst du tuen ?&quot;&lt;&lt;endl&lt;&lt;&quot;0 = Punkt waehlen. 1 = Position ausgeben. 2 = Bewegen.&quot;&lt;&lt;endl;
        cin&gt;&gt;action;
        switch(action){
            case 0:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Punkt 0 bis &quot;&lt;&lt;x&lt;&lt;&quot; verfuegbar.&quot;&lt;&lt;endl&lt;&lt;&quot;Bitte Waehlen :&quot;&lt;&lt;endl;
                cin&gt;&gt;p_choose;
                break;
            case 1:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Position: &quot;&lt;&lt;punkt[p_choose].get_position(0)&lt;&lt;&quot;x&quot;&lt;&lt;punkt[p_choose].get_position(1)&lt;&lt;&quot;x&quot;&lt;&lt;punkt[p_choose].get_position(2)&lt;&lt;endl;
                system(&quot;pause&quot;);
                break;
            case 2:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Richtung Waelen:&quot;&lt;&lt;endl&lt;&lt;&quot;0 = x+ | 1 = x- | 2 = y+ | 3 = y- | 4 = z+ | 5 = z-&quot;&lt;&lt;endl;
                cin&gt;&gt;choo;
                cout&lt;&lt;&quot;Wie weit ?&quot;&lt;&lt;endl;
                cin&gt;&gt;move;
                if(punkt[p_choose].move(choo,move)){
                    cout&lt;&lt;&quot;Fertig&quot;&lt;&lt;endl;
                } else {
                    cout&lt;&lt;&quot;Es hat sich ein Fehler ereignet&quot;;
                }
                system(&quot;pause&quot;);
                break;
            default:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Ungueltige Auswahl !&quot;&lt;&lt;endl;
                system(&quot;pause&quot;);
        }
    }
    system(&quot;pause&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/291113/konstruktor-poblemm</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 22:23:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/291113.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Aug 2011 22:24:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 22:24:21 GMT]]></title><description><![CDATA[<p>Allso ich habe folgendes problem ...<br />
Wen ich mein Programm Compiliere was auch ohne probleme klappt und mir ein array mässiges objekt erstelle aus meiner klasse &quot;punkt_3D_klasse&quot; und dann zum letzten eintrag im array (gehe bei 5 arrays eintrag 4) und mir von den 3 Variablen die werte ausgeben lase erhalte ich immer irgendwelche zahlen anstadt 0 wie ich im Konstruktor angegeben habe woher kommt das ? Funktionierte an der Stelle der Konstruktor nicht so das den Variablen keine Werte zugewiesen wurden und so eine Zufällige zahl rauskommt die im RAM an den Platz standt ?</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

class punkt_3D_klasse {
    int x_pos,y_pos,z_pos;
public :
    punkt_3D_klasse(void){
        x_pos = 0;
        y_pos = 0;
        z_pos = 0;
    }

    int get_position(int k){
        int rv;
        switch(k){
            case 0:
                rv = x_pos;
                break;
            case 1:
                rv = y_pos;
                break;
            case 2:
                rv = z_pos;
                break;
        }
        return rv;
    }

    bool move(int r,int w) {
        bool rv = 0;
        switch(r){
            case 0:
                x_pos+=w;
                rv = 1;
                break;
            case 1:
                x_pos-=w;
                rv = 1;
                break;
            case 2:
                y_pos+=w;
                rv = 1;
                break;
            case 3:
                y_pos-=w;
                rv = 1;
                break;
            case 4:
                z_pos+=w;
                rv = 1;
                break;
            case 5:
                z_pos-=w;
                rv = 1;
                break;
        }
        return rv;
    }
};

int main(int argc, char** argv) {
    int x;
    cout&lt;&lt;&quot;Wieviele 3D Punkte sollen erstellt werden ?&quot;&lt;&lt;endl;
    cin&gt;&gt;x;
    x--;
    punkt_3D_klasse punkt[x];
    int action;
    int p_choose = 0;
    int move = 0;
    int choo = 0;
    while(true){
        system(&quot;cls&quot;);
        cout&lt;&lt;&quot;Momentaner punkt: &quot;&lt;&lt;p_choose&lt;&lt;endl&lt;&lt;&quot;Was willst du tuen ?&quot;&lt;&lt;endl&lt;&lt;&quot;0 = Punkt waehlen. 1 = Position ausgeben. 2 = Bewegen.&quot;&lt;&lt;endl;
        cin&gt;&gt;action;
        switch(action){
            case 0:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Punkt 0 bis &quot;&lt;&lt;x&lt;&lt;&quot; verfuegbar.&quot;&lt;&lt;endl&lt;&lt;&quot;Bitte Waehlen :&quot;&lt;&lt;endl;
                cin&gt;&gt;p_choose;
                break;
            case 1:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Position: &quot;&lt;&lt;punkt[p_choose].get_position(0)&lt;&lt;&quot;x&quot;&lt;&lt;punkt[p_choose].get_position(1)&lt;&lt;&quot;x&quot;&lt;&lt;punkt[p_choose].get_position(2)&lt;&lt;endl;
                system(&quot;pause&quot;);
                break;
            case 2:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Richtung Waelen:&quot;&lt;&lt;endl&lt;&lt;&quot;0 = x+ | 1 = x- | 2 = y+ | 3 = y- | 4 = z+ | 5 = z-&quot;&lt;&lt;endl;
                cin&gt;&gt;choo;
                cout&lt;&lt;&quot;Wie weit ?&quot;&lt;&lt;endl;
                cin&gt;&gt;move;
                if(punkt[p_choose].move(choo,move)){
                    cout&lt;&lt;&quot;Fertig&quot;&lt;&lt;endl;
                } else {
                    cout&lt;&lt;&quot;Es hat sich ein Fehler ereignet&quot;;
                }
                system(&quot;pause&quot;);
                break;
            default:
                system(&quot;cls&quot;);
                cout&lt;&lt;&quot;Ungueltige Auswahl !&quot;&lt;&lt;endl;
                system(&quot;pause&quot;);
        }
    }
    system(&quot;pause&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2104664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104664</guid><dc:creator><![CDATA[TomHalo]]></dc:creator><pubDate>Wed, 10 Aug 2011 22:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 22:35:24 GMT]]></title><description><![CDATA[<p>Erstens sind VLAs (Arrays, deren Größe erst zur Laufzeit vorgegeben wird) im C++ Standard nicht zugelassen - sowas gibt es nur in C99. In C++ gibt es stattdessen die STL-Container.<br />
Zweitens gibst du bei einer Array-Definition die Anzahl der Elemente an, nicht den Index des letzten Elements. (d.h. wenn der Nutzer 5 eingibt, erschaffst du ein Array für 4 Elemente und greifst mit <code>punkt[4]</code> auf Werte außerhalb dieses Arrays zu)</p>
<p>Edit: Und die Methoden der Punkt-Klasse sehen auch noch etwas unausgereift aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2104669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104669</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 10 Aug 2011 22:35:24 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 22:52:39 GMT]]></title><description><![CDATA[<blockquote>
<p>Zweitens gibst du bei einer Array-Definition die Anzahl der Elemente an, nicht den Index des letzten Elements. (d.h. wenn der Nutzer 5 eingibt, erschaffst du ein Array für 4 Elemente und greifst mit punkt[4] auf Werte außerhalb dieses Arrays zu)</p>
</blockquote>
<p>Das habe ich schon berücksichtigt. Ok das mit den arrays werde ich mir nochmal Angucken.</p>
<p>Ok nein ich habe gedacht ich habe es berücksichtigt Danke <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2104673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104673</guid><dc:creator><![CDATA[TomHalo]]></dc:creator><pubDate>Wed, 10 Aug 2011 22:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 22:56:57 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>VLAs (...) sowas gibt es nur in C99. In C++ gibt es stattdessen die STL-Container.</p>
</blockquote>
<p>In C++ gibt es stattdessen leider gar nix. Zumindest nix vergleichbares <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/2104678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104678</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 10 Aug 2011 22:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 23:06:28 GMT]]></title><description><![CDATA[<p>TomHalo schrieb:</p>
<blockquote>
<blockquote>
<p>Zweitens gibst du bei einer Array-Definition die Anzahl der Elemente an, nicht den Index des letzten Elements. (d.h. wenn der Nutzer 5 eingibt, erschaffst du ein Array für 4 Elemente und greifst mit punkt[4] auf Werte außerhalb dieses Arrays zu)</p>
</blockquote>
<p>Das habe ich schon berücksichtigt.</p>
</blockquote>
<p>Nein, eher im Gegenteil - durch das <code>x--;</code> hast du die zu geringe Arraygröße überhaupt erst provoziert <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/2104679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104679</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 10 Aug 2011 23:06:28 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 22:58:14 GMT]]></title><description><![CDATA[<p>TomHalo schrieb:</p>
<blockquote>
<p>Das habe ich schon berücksichtigt. Ok das mit den arrays werde ich mir nochmal Angucken.</p>
<p>Ok nein ich habe gedacht ich habe es berücksichtigt Danke <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="😃"
    /></p>
</blockquote>
<p>Ich bin mir nicht sicher, ob du CStolls Antwort verstanden hast. Es ist gerade deine &quot;Berücksichtigung&quot;, die dir den Code kaputt gemacht hat. Dein Array hat bei Eingabe von beispielsweise 5 nur 4 Elemente und geht von 0 bis 3. Das liegt da dran, weil du von der 5 eins abziehst, bevor du das Array erstellst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2104680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104680</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 10 Aug 2011 22:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 23:00:55 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>VLAs (...) sowas gibt es nur in C99. In C++ gibt es stattdessen die STL-Container.</p>
</blockquote>
<p>In C++ gibt es stattdessen leider gar nix. Zumindest nix vergleichbares <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>
</blockquote>
<p>Naja, er muss bloß <code>#include&lt;vector&gt;</code> machen und Zeile 68 ändern zu <code>vector&lt;punkt_3D_klasse&gt; punkt(x);</code> und er hat etwas was sich genau so verhalt wie ein VLA. Meinen Röntgenblick, wo die Daten dann physikalisch liegen, schalte ich mal aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2104682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104682</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 10 Aug 2011 23:00:55 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor Poblemm ? on Wed, 10 Aug 2011 23:45:40 GMT]]></title><description><![CDATA[<p>ja das mit dem --x; meinte ich mit &quot;Ich habe gedacht das ich es Betrücksichtigt habe&quot; aber vorhin habe ich gesehen das das völliger müll war ... Es wird nämlich langsam Spät :p aber Danke habs jetzt auch mit Vektoren Gelöst.</p>
<p>Ich sollte mir das Denken um diese Uhrzeit Abgewöhnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2104687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2104687</guid><dc:creator><![CDATA[TomHalo]]></dc:creator><pubDate>Wed, 10 Aug 2011 23:45:40 GMT</pubDate></item></channel></rss>