<?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 auf ein Objekt zurückgeben]]></title><description><![CDATA[<p>Guten Abend zusammen,</p>
<p>ich stehe gerade etwas auf dem Schlauch. Effektiv versuche ich gerade etwas in C++ umzusetzen das ich dauern in Java verwendet habe.</p>
<p>Ich habe eine Klasse &quot;Book&quot;, diese enthält eine Liste mit &quot;Kapitel&quot;<br />
Es werden dann mehrere Kapitel erstellt und der Book zum Hinzufügen zur Liste Übergeben.<br />
Soweit so gut.</p>
<p>Jetzt möchte ich jedoch bei einem der bereits erstellten &quot;Kapitel&quot; den namen ändern - Ohne jedoch dass ich mir ein neues Objekt anlege, den Namen ändere und dann das alte Objekt mit replace ersetze.</p>
<p>Irgendwo beim Umdenken zwischen Java/C++ habe ich mich verlaufen, aber ich sehe gerade den Wald nichtmehr.</p>
<p>Denn Code habe ich lesefreundlich gekürzt, alles wichtige sollte aber drin sein.</p>
<p>Kapitel:</p>
<pre><code>class Kapitel
{
public:
    Kampitel();

    void setName(QString n){this-&gt;name = n};
    QString getName(void){return name};

private:
    QString name;

};
</code></pre>
<p>Buch.h</p>
<pre><code>class Book
{
public:
    Book();
    void addChapter(Bookc);
    Bookc getChapter(int);
private:
    QList &lt;Bookc&gt; chapters;
};
</code></pre>
<p>Buch.cpp</p>
<pre><code>void Book::addChapter(Bookc chapters){
    this-&gt;chapters.append(chapters);
}

Bookc Book::getChapter(int i){
    Bookc  bookc;
        if(i&gt;0 &amp;&amp; i&lt;=this-&gt;chapters.count())
        {
            bookc = this-&gt;chapters.at(i-1);
        }
        return bookc;
}
</code></pre>
<pre><code>...main...()
{
Book* book = new Book();

Kapitel kap;
kap.setName(&quot;Name1&quot;);

Kapitel kap2;
kap2.setName(&quot;Name2&quot;);

book.addChapter(kap);
book.addChapter(kap2);
//Bis hier tut alles

book-&gt;getChapter(1).setName(&quot;geänderterName&quot;); //Geht nicht
}
</code></pre>
<p>Vielen Dank</p>
<p>Petra</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294881/referenz-auf-ein-objekt-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 11:18:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294881.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Nov 2011 22:49:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Referenz auf ein Objekt zurückgeben on Wed, 02 Nov 2011 22:49:52 GMT]]></title><description><![CDATA[<p>Guten Abend zusammen,</p>
<p>ich stehe gerade etwas auf dem Schlauch. Effektiv versuche ich gerade etwas in C++ umzusetzen das ich dauern in Java verwendet habe.</p>
<p>Ich habe eine Klasse &quot;Book&quot;, diese enthält eine Liste mit &quot;Kapitel&quot;<br />
Es werden dann mehrere Kapitel erstellt und der Book zum Hinzufügen zur Liste Übergeben.<br />
Soweit so gut.</p>
<p>Jetzt möchte ich jedoch bei einem der bereits erstellten &quot;Kapitel&quot; den namen ändern - Ohne jedoch dass ich mir ein neues Objekt anlege, den Namen ändere und dann das alte Objekt mit replace ersetze.</p>
<p>Irgendwo beim Umdenken zwischen Java/C++ habe ich mich verlaufen, aber ich sehe gerade den Wald nichtmehr.</p>
<p>Denn Code habe ich lesefreundlich gekürzt, alles wichtige sollte aber drin sein.</p>
<p>Kapitel:</p>
<pre><code>class Kapitel
{
public:
    Kampitel();

    void setName(QString n){this-&gt;name = n};
    QString getName(void){return name};

private:
    QString name;

};
</code></pre>
<p>Buch.h</p>
<pre><code>class Book
{
public:
    Book();
    void addChapter(Bookc);
    Bookc getChapter(int);
private:
    QList &lt;Bookc&gt; chapters;
};
</code></pre>
<p>Buch.cpp</p>
<pre><code>void Book::addChapter(Bookc chapters){
    this-&gt;chapters.append(chapters);
}

Bookc Book::getChapter(int i){
    Bookc  bookc;
        if(i&gt;0 &amp;&amp; i&lt;=this-&gt;chapters.count())
        {
            bookc = this-&gt;chapters.at(i-1);
        }
        return bookc;
}
</code></pre>
<pre><code>...main...()
{
Book* book = new Book();

Kapitel kap;
kap.setName(&quot;Name1&quot;);

Kapitel kap2;
kap2.setName(&quot;Name2&quot;);

book.addChapter(kap);
book.addChapter(kap2);
//Bis hier tut alles

book-&gt;getChapter(1).setName(&quot;geänderterName&quot;); //Geht nicht
}
</code></pre>
<p>Vielen Dank</p>
<p>Petra</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139618</guid><dc:creator><![CDATA[Petra84]]></dc:creator><pubDate>Wed, 02 Nov 2011 22:49:52 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz auf ein Objekt zurückgeben on Wed, 02 Nov 2011 22:51:44 GMT]]></title><description><![CDATA[<p>*seufz*<br />
und im falschen Forum bin ich auchnoch gelandet.</p>
<p>Könnte mich ein freundlicher Mod verschieben?</p>
<p>LG<br />
Petra</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139620</guid><dc:creator><![CDATA[Petra84]]></dc:creator><pubDate>Wed, 02 Nov 2011 22:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz auf ein Objekt zurückgeben on Thu, 03 Nov 2011 09:23:43 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Hast du es schon mal mit nem Qlist&lt;&gt; iterator versucht? Das müsste eigentlich funktionieren. Ich würde in der Book Klasse ne Funktion</p>
<pre><code class="language-cpp">changeName(QString string, int chapter)
{
    QList&lt;Bookc&gt;::iterator iter=chapters.begin()+chapter;
    *iter-&gt;setName(string);
}
</code></pre>
<p>basteln. In deiner main kannst du dann das aufrufen</p>
<pre><code class="language-cpp">...
   book-&gt;changeName(&quot;NeuerName&quot;,1); //dies würde Kapitel 2 verändern, da die QList bei 0 beginnt
...
</code></pre>
<p>Hoffe das hilft</p>
<p>gruz caaso</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139705</guid><dc:creator><![CDATA[caaso]]></dc:creator><pubDate>Thu, 03 Nov 2011 09:23:43 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz auf ein Objekt zurückgeben on Thu, 03 Nov 2011 14:05:50 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u1652" rel="nofollow">phlox81</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f51" rel="nofollow">Andere GUIs - Qt, GTK+, wxWidgets</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139826</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 03 Nov 2011 14:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz auf ein Objekt zurückgeben on Thu, 03 Nov 2011 14:45:43 GMT]]></title><description><![CDATA[<p>so wie du es vorhast, müsstest du eine referenz zurückgeben. aber das würde gerade in deinem beispiel zu fehlern führen (referenz auf lokales-&gt;temporäres objekt)</p>
<pre><code class="language-cpp">Bookc&amp; Book::getChapter(int i){
    return this-&gt;chapters.at(i-1);
}
</code></pre>
<p>aber ich kenne in dem Kontext QList nicht und weiss daher nicht ob der die arraygrenzen prüft oder referenzen zurückgibt (std::vector macht es jedenfalls)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139850</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 03 Nov 2011 14:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz auf ein Objekt zurückgeben on Thu, 03 Nov 2011 14:58:01 GMT]]></title><description><![CDATA[<p>at von QList gibt es nur als konstante Version. Hier würde nur operator[] gehen (ohne check).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2139863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2139863</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 03 Nov 2011 14:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz auf ein Objekt zurückgeben on Sat, 12 Nov 2011 08:30:07 GMT]]></title><description><![CDATA[<p>VIELEN DANK an alle,</p>
<p>Bookc&amp; Book::getChapter(int i){<br />
return this-&gt;chapters[i-1];<br />
}</p>
<p>Funktioniert genau so wie ich es wollte!</p>
<p>Viele Grüße &amp; ein schönes WE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143588</guid><dc:creator><![CDATA[Petra84]]></dc:creator><pubDate>Sat, 12 Nov 2011 08:30:07 GMT</pubDate></item></channel></rss>