<?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[Referenz?]]></title><description><![CDATA[<p>Hallo ich hab ein paar Verständnisfragen zu Referenzen.<br />
Wäre für Hilfe sehr dankbar.</p>
<pre><code class="language-cpp">class Counter
{
      public:
             Counter();
             ~Counter(){}
             int GetItsVal()const { return itsVal; }
             void SetItsVal(int x) { itsVal = x; }
             const Counter&amp; operator++();           //&lt;-- hier liegt mein Problem
             const Counter operator++(int);

      private:
              int itsVal;
};
</code></pre>
<p>in der Kommentierten Zeile wird doch eine Referenz vom Typ &quot;Counter&quot; auf &quot;operator++()&quot; erzeugt, wenn ich mich nciht täusche?<br />
Aber worauf referiert diese? oder habe ich einen Denkfehler?<br />
Bitte um Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262066/referenz</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 23:41:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262066.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Feb 2010 16:35:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 16:35:47 GMT]]></title><description><![CDATA[<p>Hallo ich hab ein paar Verständnisfragen zu Referenzen.<br />
Wäre für Hilfe sehr dankbar.</p>
<pre><code class="language-cpp">class Counter
{
      public:
             Counter();
             ~Counter(){}
             int GetItsVal()const { return itsVal; }
             void SetItsVal(int x) { itsVal = x; }
             const Counter&amp; operator++();           //&lt;-- hier liegt mein Problem
             const Counter operator++(int);

      private:
              int itsVal;
};
</code></pre>
<p>in der Kommentierten Zeile wird doch eine Referenz vom Typ &quot;Counter&quot; auf &quot;operator++()&quot; erzeugt, wenn ich mich nciht täusche?<br />
Aber worauf referiert diese? oder habe ich einen Denkfehler?<br />
Bitte um Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862364</guid><dc:creator><![CDATA[Wowa705]]></dc:creator><pubDate>Sun, 28 Feb 2010 16:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 16:46:37 GMT]]></title><description><![CDATA[<p>Nein, da wird eine Funktion (eine Überladung des Prefix-++-Operators) deklariert, die eine Referenz auf ein konstantes Counter-Objekt zurückliefert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862367</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sun, 28 Feb 2010 16:46:37 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 16:46:54 GMT]]></title><description><![CDATA[<p>Durch diese Referenz wird keine Kopie, sondern das Original zurückgegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862368</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sun, 28 Feb 2010 16:46:54 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 16:50:22 GMT]]></title><description><![CDATA[<p>Wowa705 schrieb:</p>
<blockquote>
<p>in der Kommentierten Zeile wird doch eine Referenz vom Typ &quot;Counter&quot; auf &quot;operator++()&quot; erzeugt, wenn ich mich nciht täusche?</p>
</blockquote>
<p>Nein, das ist eine Deklaration einer Elementfunktion (aka &quot;Methode&quot;), welche eine Referenz als Rüchgabewert hat.</p>
<p>Wowa705 schrieb:</p>
<blockquote>
<p>Aber worauf referiert diese? oder habe ich einen Denkfehler?</p>
</blockquote>
<p>Das kann man der Deklaration nicht ansehen. Muss man dort nachgucken, wo die Funktion definiert ist, was da für ein return-Statement steht. Typischerweise würde man hier das const weglassen und die Funktion mit &quot;return *this;&quot; abschließen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862370</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sun, 28 Feb 2010 16:50:22 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 16:52:39 GMT]]></title><description><![CDATA[<p>wenn ich nun aber eine Referenz deklariere, schreibe ich doch z.B.</p>
<pre><code class="language-cpp">int &amp;rDieRef = einInt;
</code></pre>
<p>was soviel bedeutet wie &quot;rDieRef verweist auf einInt und ist vom Typ int&quot; oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862372</guid><dc:creator><![CDATA[Wowa705]]></dc:creator><pubDate>Sun, 28 Feb 2010 16:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 17:04:35 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Wowa705 schrieb:</p>
<blockquote>
<p>in der Kommentierten Zeile wird doch eine Referenz vom Typ &quot;Counter&quot; auf &quot;operator++()&quot; erzeugt, wenn ich mich nciht täusche?</p>
</blockquote>
<p>Nein, das ist eine Deklaration einer Elementfunktion (aka &quot;Methode&quot;), welche eine Referenz als Rüchgabewert hat.</p>
</blockquote>
<p>ok das habe ich soweit verstanden.<br />
Mein Problem liegt nun darin, dass ich mich frage: einerseits habe ich gelern, ich darf Referenzen nicht uninitialisiert lassen. jedoch finde ich die Initialisierung hier nicht(oder ist das der Teil in der Finktionsdefinition?).<br />
Dann verstehe ich jedoch die Syntax nicht ganz.</p>
<p>Die Methodendefinition:</p>
<pre><code class="language-cpp">const Counter&amp; Counter::operator++()
{
      ++itsVal;
      return *this;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1862377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862377</guid><dc:creator><![CDATA[Wowa705]]></dc:creator><pubDate>Sun, 28 Feb 2010 17:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 17:06:35 GMT]]></title><description><![CDATA[<p>Wowa705 schrieb:</p>
<blockquote>
<p>wenn ich nun aber eine Referenz deklariere, schreibe ich doch z.B.</p>
<pre><code class="language-cpp">int &amp;rDieRef = einInt;
</code></pre>
<p>was soviel bedeutet wie &quot;rDieRef verweist auf einInt und ist vom Typ int&quot; oder?</p>
</blockquote>
<p>Nein. Das besagt, dass <code>rDieRef</code> eine Referenz auf ein <code>int</code> ist. <code>rDieRef</code> ist aber vom Typ <code>int&amp;</code> nicht <code>int</code> .</p>
<p>//EDIT<br />
Das <code>return this</code> ist sozusagen die Initialisierung der Referenz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862378</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 28 Feb 2010 17:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 17:34:41 GMT]]></title><description><![CDATA[<p>Wie genau sieht dann die Deklaration(+Initialisierung) einer allgemeinen Methode aus? kann mir das evtl. jemand sagen? das würde mir in meinem Verstöndnis enorm weiter helfen denke ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862388</guid><dc:creator><![CDATA[Wowa705]]></dc:creator><pubDate>Sun, 28 Feb 2010 17:34:41 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 17:42:44 GMT]]></title><description><![CDATA[<p>Wowa705 schrieb:</p>
<blockquote>
<p>Wie genau sieht dann die Deklaration(+Initialisierung) einer allgemeinen Methode aus? kann mir das evtl. jemand sagen? das würde mir in meinem Verstöndnis enorm weiter helfen denke ich.</p>
</blockquote>
<p>Ich denke was dir am meisten helfen würde wäre ein ordentliches Buch (C++ Primer z.B.)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862391</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 28 Feb 2010 17:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 19:29:50 GMT]]></title><description><![CDATA[<p>l'abra d'or schrieb:</p>
<blockquote>
<p>Ich denke was dir am meisten helfen würde wäre ein ordentliches Buch (C++ Primer z.B.)...</p>
</blockquote>
<p>danke für den äußerst hilfreichen Beitrag. wieso können leute in Foren so oft nich beim thema Bleiben.</p>
<p>an alle anderen: danke für die Beiträge, die waren im gegensatz zu dem eben genannten wirklich hilfreich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862448</guid><dc:creator><![CDATA[Wowa705]]></dc:creator><pubDate>Sun, 28 Feb 2010 19:29:50 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Sun, 28 Feb 2010 20:07:00 GMT]]></title><description><![CDATA[<p>Wowa705 schrieb:</p>
<blockquote>
<p>danke für den äußerst hilfreichen Beitrag.</p>
</blockquote>
<p>Der Beitrag war total angebracht. Die letzte Frage, die Du gestellt hast, zeigt, dass Dir ganz viel an Basiswissen fehlt, welches Du Dir locker <em>selbstständig</em> erarbeiten könntest. Du wirst sicherlich verstehen, dass es viel einfacher ist, zu sagen &quot;Schnapp Dir ein C++ Buch und lerne&quot; als hier einen langen Aufsatz über C und C++ zu schreiben, der alles beinhaltet, was Du noch nicht verstanden haben könntest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862457</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 28 Feb 2010 20:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Mon, 01 Mar 2010 12:05:19 GMT]]></title><description><![CDATA[<p>Tutorials sind manchmal auch ganz nett.<br />
<a href="http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node17.html#SECTION00412000000000000000" rel="nofollow">http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node17.html#SECTION00412000000000000000</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862628</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 01 Mar 2010 12:05:19 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Mon, 01 Mar 2010 12:59:10 GMT]]></title><description><![CDATA[<p>Wowa705 schrieb:</p>
<blockquote>
<p>Wie genau sieht dann die Deklaration(+Initialisierung) einer allgemeinen Methode aus? kann mir das evtl. jemand sagen? das würde mir in meinem Verstöndnis enorm weiter helfen denke ich.</p>
</blockquote>
<p>Initialisierung einer Methode? Meinst du eventuell Definition? Mal folgendes zu Deklaration, Definition und Initialisierung:</p>
<pre><code class="language-cpp">/* ------ Funktionen ------ */

// Deklaration: sagt dem Compiler das die Funktion existiert
// Definition: sagt dem Compiler was die Funktion tut (Implementierung)

int foo(); // Deklaration

int foo()  // Definition
{ ... }    //

/* ------- Methoden ------- */

// Deklaration: siehe oben
// Definition: siehe oben

class Foo
{
public:
    int bar(); // Deklaration
};

int Foo::bar() // Definition
{ ... }        //

/* ------ Variablen ------- */

// Deklaration: sagt dem Compiler den Namen und den Typ einer Variablen
// Definition: der Compiler reserviert Speicherplatz für die Variable
// Initialisierung: die Variable mit einem Wert belegen

int var1 = 1; // Deklaration, Definition UND Initialisierung

int var2; // Deklaration UND Definition

extern int var3; // Deklaration (Definition wo anders)

struct Foobar {
    static int var3; // Deklaration
};
int Foobar::var3; // Definition
</code></pre>
<p>Aber es gibt keine Initialisierung von Funktionen oder Methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1862659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1862659</guid><dc:creator><![CDATA[Tobias W]]></dc:creator><pubDate>Mon, 01 Mar 2010 12:59:10 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Tue, 02 Mar 2010 23:20:58 GMT]]></title><description><![CDATA[<p>ok, danke.<br />
Da war ich wohl fehlinformiert.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24868">@krümelkacker</a>:<br />
und nochmals vielen Dank. Ich lerne bereits anhand eines Buches. Da dabei aber hin und wieder Fragen aufkommen, versuche ich mich im Internet schlau zu machen, was bisher auch gut funktionierte. Oder soll ich nun bei jeder Frage, die ich habe in den Laden rennen und mir ein neues Buch darüber kaufen? Und genau solche Leute sind bei der Internetrecherche ziemlich störend, da man erst etliche Beiträge erhält, die nicht auf die Frage antworten, um dann einen zu erhalten, der einem hilft.<br />
Dabei könnte das Leben doch so einfach sein.</p>
<p>btt:<br />
wie man eine Funktion oder Methode deklariert und definiert ist mir bewusst, was mich an diesem Code irritiert ist vielmehr die Tatsache, dass eine Referenz auf eine Variable folgendermaßen aussieht:</p>
<pre><code>int&amp; rEineRef = einInt;
</code></pre>
<p>und liest sich als rEineRef ist eine Referenz und &quot;zeigt&quot; auf einInt.<br />
bei der Methodendeklaration hingegen ist die Syntax scheinbar anders.</p>
<p>und nun meine Fragen dazu:<br />
1. ist die Syntax wirklich eine andere oder durchblicke ich nur etwas nicht?<br />
2. wenn sie anders ist: worin unterscheidet sie sich und wie ist die Lesart?</p>
<p>ich hoffe meine Frage wird nun etwas klarer und nachwievor danke für alle hilfreichen Beiträge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863566</guid><dc:creator><![CDATA[wowa705]]></dc:creator><pubDate>Tue, 02 Mar 2010 23:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Wed, 03 Mar 2010 07:21:36 GMT]]></title><description><![CDATA[<p>Referenzen sind im Prinzip Zeiger. Vielleicht kommst du besser mit Referenzen klar, wenn du das Kapitel über Zeiger durch hast.</p>
<p>Und nein, die Syntax ist bei Methoden und Variablen NICHT anders!<br />
Überall heißt das &quot;&amp;&quot; Referenz.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

struct Test {
    int val;

    Test&amp; self() {  // gibt eine Referenz auf this zurück
        return *this;
    }

    int value() const { // das hier gibt ne Kopie auf val zurück
        return val;
    }
};

int main() {
    Test t;
    t.val = 10;

    Test&amp; rt = t.self();
    rt.val = 15;
    cout &lt;&lt; t.val &lt;&lt; endl;

    const Test&amp; crt = t.self();
    //crt.val =17;  // gut, das geht nicht, wir haben nur ne const-Referenz

    Test ct = t.self();  // das ist jetzt ne Kopie
    ct.val = 20;
    cout &lt;&lt; t.val &lt;&lt; endl;   // 15
    cout &lt;&lt; ct.val &lt;&lt; endl;  // 20

    int x = 10;
    int&amp; rx = x;
    rx = 15;
    cout &lt;&lt; x &lt;&lt; endl;

    const int&amp; crx = x;
    // crx = 17; // Geht wieder nicht... -&gt; const-Referenz
}
</code></pre>
<p>Vielleicht ist es etwas klarer.</p>
<p>Mit welchem Buch arbeitest du denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863604</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 03 Mar 2010 07:21:36 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz? on Wed, 03 Mar 2010 15:20:16 GMT]]></title><description><![CDATA[<p>ich lerne mit &quot;C++ in 21 Tagen&quot; wobei mir natürlich bewusst ist dass 21 Tage eine völlig utopische Zeit ist, in der man - wenn es überhaupt zu schaffen ist - keine vernünftigen Ergebnissen erzielen wird. also ich nehme mir für die Kapitel mehr zeit als einen Tag.<br />
soviel sei gesagt bevor ich gleich gesteinigt werde.</p>
<p>sonst vielen danke an Alle. hat mir sehr geholfen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863857</guid><dc:creator><![CDATA[wowa705]]></dc:creator><pubDate>Wed, 03 Mar 2010 15:20:16 GMT</pubDate></item></channel></rss>