<?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[Klassenzusammenhänge verstehen]]></title><description><![CDATA[<p>Heyho, da ich Beginner bin, würde ich mich freuen wenn mir jemand mal ein paar Zusammenhänge bei Klasse erklären kann...</p>
<p>folgendes:</p>
<p>yada.h</p>
<pre><code class="language-cpp">class test {
  public:

    int zahl;
    void machwas();
    void aufruf();

}
</code></pre>
<p>yada.cpp</p>
<pre><code class="language-cpp">void test::machwas(){
   cout &lt;&lt; zahl;
}

void test::aufruf(){
   machwas();
}
</code></pre>
<p>main</p>
<pre><code class="language-cpp">int main(){
  test* t = new test();
  t-&gt;zahl = 1234;
  t-&gt;machwas();
  t-&gt;aufruf();
  delete t;
}
</code></pre>
<p>gibt einmal 12 und einmal (bei aufruf() ) 0 aus. Warum??<br />
Wie kann ich denn innerhalb der Klasse (jeweiligen Instanz) auf die Variable &quot;Zahl&quot; zugreifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/138004/klassenzusammenhänge-verstehen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 23:45:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138004.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Feb 2006 15:33:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassenzusammenhänge verstehen on Wed, 22 Feb 2006 16:40:04 GMT]]></title><description><![CDATA[<p>Heyho, da ich Beginner bin, würde ich mich freuen wenn mir jemand mal ein paar Zusammenhänge bei Klasse erklären kann...</p>
<p>folgendes:</p>
<p>yada.h</p>
<pre><code class="language-cpp">class test {
  public:

    int zahl;
    void machwas();
    void aufruf();

}
</code></pre>
<p>yada.cpp</p>
<pre><code class="language-cpp">void test::machwas(){
   cout &lt;&lt; zahl;
}

void test::aufruf(){
   machwas();
}
</code></pre>
<p>main</p>
<pre><code class="language-cpp">int main(){
  test* t = new test();
  t-&gt;zahl = 1234;
  t-&gt;machwas();
  t-&gt;aufruf();
  delete t;
}
</code></pre>
<p>gibt einmal 12 und einmal (bei aufruf() ) 0 aus. Warum??<br />
Wie kann ich denn innerhalb der Klasse (jeweiligen Instanz) auf die Variable &quot;Zahl&quot; zugreifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000312</guid><dc:creator><![CDATA[DrOetker]]></dc:creator><pubDate>Wed, 22 Feb 2006 16:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenzusammenhänge verstehen on Wed, 22 Feb 2006 15:42:30 GMT]]></title><description><![CDATA[<p>Erstmal glaube ich nichtmal, daß dieser Code compilieren wird (test hat keine Methode aufruf(), dein machwas() ist eine globale Funktion und nutzt eine undefinierte Variable, test::machwas() ist gar nicht definiert (da dürfte sich der Linker freuen), new wird nur zur Erzeugung von Pointern verwendet,...).</p>
<p>Desweiteren: In einer Memberfunktion von test kannst du einfach über den Namen auf die Membervariablen (und ander Funktionen) zugreifen. Wenn du explizit den Zusammenhang kennzeichnen willst, kannst du auch &quot;this-&gt;zahl&quot; schreiben (ist aber unnötig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000319</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Feb 2006 15:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenzusammenhänge verstehen on Wed, 22 Feb 2006 16:03:50 GMT]]></title><description><![CDATA[<p>ja das stimmt, da kam wieder der genannte beginner durch. diesen code hab ich eben kurz aus dem kopf hingeschrieben, habs nun verbessert.</p>
<p>also,</p>
<pre><code class="language-cpp">void blubb( void )
</code></pre>
<p>bedeutet globale Funktion?</p>
<p>wenn es so wie oben steht, müsste es laufen?<br />
Dann liegt mein Fehler woanders.</p>
<p>Konkret habe ich eine Klasse (vereinfacht):</p>
<p>pcfr.h</p>
<pre><code class="language-cpp">class pcfr {

   public:
     m_timeCode;
     void setTimeCode(double tcode);
     double getTimeCode();
     CString getTimeString();

}
</code></pre>
<p>pcfr.cpp</p>
<pre><code class="language-cpp">void pcfr::setTimeCode(double tcode){
    m_timeCode = tcode;
}

double pcfr::getTimeCode(){
    return m_timeCode;
}

void pcfr::drawString(){
    CString clock = getTimeString();
}

CString pcfr::getTimeString(){
    CString ts;
    // Umwandlung des doubles - m_timeCode
    return ts;     
}
</code></pre>
<p>ich habe in der main eine deque, in der pointer auf die instanzen von pcfr liegen, und rufe dann mittels</p>
<pre><code class="language-cpp">// dq ist die deque

dq.at(i)-&gt;DrawString();
</code></pre>
<p>die Methode auf.</p>
<p>Dies scheitert daran, dass der debugger sagt, der sich zu dem Zeitpunkt in pcfr::getTimeString() befindet, dass m_timeCode nicht instanziiert ist (NullPointer).</p>
<p>rufe ich jedoch<br />
double test = <a href="http://dq.at" rel="nofollow">dq.at</a>(i)-&gt;getTimeCode() auf, kriege ich den richtigen Inhalt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000335</guid><dc:creator><![CDATA[DrOetker]]></dc:creator><pubDate>Wed, 22 Feb 2006 16:03:50 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenzusammenhänge verstehen on Wed, 22 Feb 2006 16:25:39 GMT]]></title><description><![CDATA[<p>Kann es sein, daß du den Typ von m_timecode unterschlagen hast? Und die Klasse hat auch kein Member 'DrawString()' (jedenfalls nicht in der Klassendeklaration).</p>
<blockquote>
<p>wenn es so wie oben steht, müsste es laufen?</p>
</blockquote>
<p>Wenn du die Variable t noch als 'test*' deklarierst, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000386</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Feb 2006 16:25:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenzusammenhänge verstehen on Wed, 22 Feb 2006 16:31:00 GMT]]></title><description><![CDATA[<p>Problem gelöst.</p>
<p>In meinem Programm (in einem Dialog) habe ich zwei mal (in zwei verschiedenen spaces, also einmal global und einmal in einer Funktion) meine Variable (pcfr* frame) definiert. Initialisiert wurde sie aber nur in meiner zweiten Definition.</p>
<p>Ich habe es nicht bemerkt, da ich bisher nur in der Funktion gearbeitet habe, in der ich sie das auch initialisiert habe.</p>
<p>Daher kam der NullPointer, da ich nun versuchte, auf die globale zuzugreifen. ärgerlich...</p>
<p>Vielen Dank jedenfalls trotzdem. Ich dachte ich hätte irgendwelche Zusammenhänge nicht richtig verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1000398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1000398</guid><dc:creator><![CDATA[DrOetker]]></dc:creator><pubDate>Wed, 22 Feb 2006 16:31:00 GMT</pubDate></item></channel></rss>