<?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[mini Quellcode mit Anfängerfehler]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>leider steh ich mit C++ noch am Anfang. Bis jetzt hab ich alle Probleme schnell per www (auch Euer Forum war hilfreich!) ausmachen können. Jetzt mach ichs mir ein bissl komplizierter und schon gehts nimmer so leicht....naja...</p>
<p>Folgendes hab ich aufgrund eines c++-Buches angenommen: Ich dachte, der Standard-ctor belegt alle Variablen einer Klasse mal mit Null. Wofür gilt das genau? Pointer und deren Zieladressen zB?<br />
Also da unten hab ich ein bissi Code geschrieben, der nichts macht als einen meiner Fehler zu erzeugen. Er stürzt zur Laufzeit ab. Vielleicht könnt ihr mir sagen woran es liegt. Das Problem liegt in der Zuweisung der in insert übergebenen Variable. Per Debugger (MS Visual C++) sehr ich auch, dass wert und next keine Werte haben...also nicht null, nicht irgendeine komische Hex-Zahl...keinen Wert.</p>
<p>Mit besten Grüßen<br />
Andi</p>
<pre><code>#include&lt;iostream.h&gt;

class List {
private:
	class Node {			
		public:
		char wert;		
		Node* next;		
	};
public:	
	Node *root;

	void insert(char c){
		root-&gt;wert=c;
	};

};

void main(){
	List test;
	test.insert('a');
};
</code></pre>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158289/mini-quellcode-mit-anfängerfehler</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 15:52:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158289.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Sep 2006 02:36:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 02:36:04 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>leider steh ich mit C++ noch am Anfang. Bis jetzt hab ich alle Probleme schnell per www (auch Euer Forum war hilfreich!) ausmachen können. Jetzt mach ichs mir ein bissl komplizierter und schon gehts nimmer so leicht....naja...</p>
<p>Folgendes hab ich aufgrund eines c++-Buches angenommen: Ich dachte, der Standard-ctor belegt alle Variablen einer Klasse mal mit Null. Wofür gilt das genau? Pointer und deren Zieladressen zB?<br />
Also da unten hab ich ein bissi Code geschrieben, der nichts macht als einen meiner Fehler zu erzeugen. Er stürzt zur Laufzeit ab. Vielleicht könnt ihr mir sagen woran es liegt. Das Problem liegt in der Zuweisung der in insert übergebenen Variable. Per Debugger (MS Visual C++) sehr ich auch, dass wert und next keine Werte haben...also nicht null, nicht irgendeine komische Hex-Zahl...keinen Wert.</p>
<p>Mit besten Grüßen<br />
Andi</p>
<pre><code>#include&lt;iostream.h&gt;

class List {
private:
	class Node {			
		public:
		char wert;		
		Node* next;		
	};
public:	
	Node *root;

	void insert(char c){
		root-&gt;wert=c;
	};

};

void main(){
	List test;
	test.insert('a');
};
</code></pre>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130503</guid><dc:creator><![CDATA[gast0815]]></dc:creator><pubDate>Mon, 04 Sep 2006 02:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 06:15:35 GMT]]></title><description><![CDATA[<p>gast0815 schrieb:</p>
<blockquote>
<p>Folgendes hab ich aufgrund eines c++-Buches angenommen: Ich dachte, der Standard-ctor belegt alle Variablen einer Klasse mal mit Null. Wofür gilt das genau? Pointer und deren Zieladressen zB?</p>
</blockquote>
<p>Das stimmt eben nicht. Werte sind nicht definiert, manche Compiler tun dies für Zeiger aber nur im Debug Modus.<br />
Du musst mindestens root und next initialisieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130528</guid><dc:creator><![CDATA[Gast0916]]></dc:creator><pubDate>Mon, 04 Sep 2006 06:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 06:22:08 GMT]]></title><description><![CDATA[<p>gast0815 schrieb:</p>
<blockquote>
<p>Folgendes hab ich aufgrund eines c++-Buches angenommen: Ich dachte, der Standard-ctor belegt alle Variablen einer Klasse mal mit Null.</p>
</blockquote>
<p>Diese Annahme ist ein Irrtum und wenn das so oder so ähnlich aus deinem Buch<br />
hervorgehen sollte, was ich mal nicht hoffe, dann wirf es besser weg. Du musst<br />
in deinem von dir selbst geschriebenem Konstruktor deine Variablen selbst<br />
initialisieren, das macht keiner für dich.</p>
<p>C++ ist nicht Java. <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>
<p>gast0815 schrieb:</p>
<blockquote>
<pre><code>#include&lt;iostream.h&gt;

class List {
private:
	class Node {			
		public:
		char wert;		
		Node* next;		
	};
public:	
	Node *root;

	void insert(char c){
		root-&gt;wert=c;
	};

};

void main(){
	List test;
	test.insert('a');
};
</code></pre>
</blockquote>
<p>Es ist im allgemeinen keine &quot;gute Idee&quot; die Daten deiner Objekte direkt<br />
zugreifbar zu machen. Also mach bitte aus root ein &quot;private member&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130530</guid><dc:creator><![CDATA[Redhead]]></dc:creator><pubDate>Mon, 04 Sep 2006 06:22:08 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:34:26 GMT]]></title><description><![CDATA[<p>Redhead schrieb:</p>
<blockquote>
<p>gast0815 schrieb:</p>
<blockquote>
<p>Folgendes hab ich aufgrund eines c++-Buches angenommen: Ich dachte, der Standard-ctor belegt alle Variablen einer Klasse mal mit Null.</p>
</blockquote>
<p>Diese Annahme ist ein Irrtum</p>
</blockquote>
<p>Wie kommst Du darauf? Die Annahme ist korrekt. Nicht-initialisierte Variablen einer Klasse werden mit Nullwerten initialisiert (genauer gesagt: dem Standard-Konstruktor).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130598</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:34:26 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:30:23 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Redhead schrieb:</p>
<blockquote>
<p>gast0815 schrieb:</p>
<blockquote>
<p>Folgendes hab ich aufgrund eines c++-Buches angenommen: Ich dachte, der Standard-ctor belegt alle Variablen einer Klasse mal mit Null.</p>
</blockquote>
<p>Diese Annahme ist ein Irrtum</p>
</blockquote>
<p>Wie kommst Du darauf? Die Annahme ist korrekt. Nicht-initialisierte Variablen einer Klasse werden mit Nullwerten initialisiert (genauer gesagt: dem Standard-Konstruktor).</p>
</blockquote>
<p>Die eingebauten Datentypen haben keinen Standardkonstruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130604</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:32:32 GMT]]></title><description><![CDATA[<p>bluecode schrieb:</p>
<blockquote>
<p>Die eingebauten Datentypen haben keinen Standardkonstruktor.</p>
</blockquote>
<p>Ah?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    int i = int();
    std::cout &lt;&lt; i &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1130606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130606</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:32:32 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:34:43 GMT]]></title><description><![CDATA[<p>Dann pack doch mal dein i in ne klasse und versuchs. Da kommt bei mir nicht 0 aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130608</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:34:43 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:38:07 GMT]]></title><description><![CDATA[<p>...und versuch das mal mit nem Zeiger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130614</guid><dc:creator><![CDATA[Zeigefinger]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:38:07 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:39:29 GMT]]></title><description><![CDATA[<p>bluecode schrieb:</p>
<blockquote>
<p>Dann pack doch mal dein i in ne klasse und versuchs. Da kommt bei mir nicht 0 aus.</p>
</blockquote>
<p>Habe ich. <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>
<p>Zugegeben, ich habe geschummelt: Ich habe die Klasse explizit initialisiert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

struct Test {
    char* c;
    int i;
    float f;
};

int main(int argc, char* argv[])
{
    using namespace std;

    Test foo = Test();
    cout &lt;&lt; foo.i &lt;&lt; endl &lt;&lt; (int)foo.c &lt;&lt; endl &lt;&lt; foo.f &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1130615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130615</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:39:29 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:43:44 GMT]]></title><description><![CDATA[<p>Zeigefinger schrieb:</p>
<blockquote>
<p>...und versuch das mal mit nem Zeiger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Ja, und wo soll da das Problem sein?</p>
<pre><code class="language-cpp">// [...]
int* i = new int();
cout &lt;&lt; i &lt;&lt; endl &lt;&lt; *i &lt;&lt; endl;
delete i;
</code></pre>
<p>Gibt mir sowas aus:</p>
<pre><code>00356078
0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1130619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130619</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:54:05 GMT]]></title><description><![CDATA[<p>Den Zeiger direkt mit Heap zu befüllen war nicht gefordert!</p>
<p>Und</p>
<pre><code class="language-cpp">int* i = int*();
</code></pre>
<p>will nicht so recht klappen :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130629</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 09:54:14 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Zugegeben, ich habe geschummelt: Ich habe die Klasse explizit initialisiert</p>
</blockquote>
<p>Stimmt, wenn man das explizit macht, (scheint) es zu funktionieren... verwundert mich ein wenig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> , aber ob das jetzt die Lösung ist? Ich weiß nicht... ich würd/werd lieber explizit den konstruktor aufrufen und nicht blind darauf vertrauen, dass ich mich beim Benutzen der Klasse noch daran erinner <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/1130630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130630</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Mon, 04 Sep 2006 09:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 10:07:47 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Den Zeiger direkt mit Heap zu befüllen war nicht gefordert!</p>
</blockquote>
<p>Ach so, habe ich falsch verstanden.</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<p>Und</p>
<pre><code class="language-cpp">int* i = int*();
</code></pre>
<p>will nicht so recht klappen :p</p>
</blockquote>
<p>Doch, wieso nicht?! Die ganze STL baut doch darauf auf, dass man Basistypen konstruieren kann ...</p>
<pre><code class="language-cpp">typedef int* T;
int* pi = T();
</code></pre>
<p>Klappt wunderbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130638</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 04 Sep 2006 10:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 10:19:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt; //iostream.h ist veraltet!

using namespace std; //das zeug aus iostream und das andere standard-zeug ist im namespace std

template&lt;typename T&gt;
class List
{
    class Node
    {
    public:
        Node(T value) : m_value(value), m_next(0) {} //konstruktor mit initialisierungsliste
        T m_value;
        Node *m_next;
    };

    Node *m_first, *m_last;

public:
    List() : m_first(0) {} //konstruktor mit initialisierungsliste
    ~List() { clear(); }

    void clear()
    {
        Node *current;
        while(m_first)
        {
            current = m_first;
            m_first = m_first-&gt;m_next;
            delete current;
        }
    }

    void append(T value)
    {
        if(!m_first)
            m_last = m_first = new Node(value);
        else
            m_last = m_last-&gt;m_next = new Node(value);
    }

    void show()
    {
        for(Node *current = m_first; current != 0; current = current-&gt;m_next)
            cout &lt;&lt; current-&gt;m_value &lt;&lt; endl;
    }
};

int main()
{
    List&lt;char&gt; test;
    test.append('a');
    test.append('b');
    test.append('c');

    test.show();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1130646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130646</guid><dc:creator><![CDATA[gast4711]]></dc:creator><pubDate>Mon, 04 Sep 2006 10:19:26 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 10:20:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int* pi;
std::cout &lt;&lt; pi &lt;&lt; &quot;\n&quot; &lt;&lt; *pi &lt;&lt; &quot;\n&quot;;
</code></pre>
<p>*päng*</p>
<p>Sein Ursprungsproblem war ein nicht initialisierter Zeiger, und die Zeigen nicht per Default auf NULL, jedenfalls müssen sie das nicht. Sprich: Undefiniertes Verhalten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130648</guid><dc:creator><![CDATA[Zeigefinger]]></dc:creator><pubDate>Mon, 04 Sep 2006 10:20:16 GMT</pubDate></item><item><title><![CDATA[Reply to mini Quellcode mit Anfängerfehler on Mon, 04 Sep 2006 10:20:59 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef int* T;
int* pi = T();
</code></pre>
<p>Klappt wunderbar.</p>
</blockquote>
<p>Klar doch, aber willst Du einen Anfänger wirklich gleich mit typedefs erschlagen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130650</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 04 Sep 2006 10:20:59 GMT</pubDate></item></channel></rss>