<?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[Setproperty und Getproperty...]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe ursprünglich C# programmiert und versuche nun auf C++ umzusteigen. Ich habe aber noch eine grundsätzliche Frage:</p>
<p>In C# habe ich einfach eine Property definiert und diese dann nach belieben aufgerufen und verändert. In meinem C++ Buch ist oft die Rede von Setproperty(...) und Getproperty Funktionen. Wieso muss ich dafür in C++ extra Funktionen schreiben? Ist es unschön/ unsicher oder so, wenn ich die Property direkt ändere???</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/281136/setproperty-und-getproperty</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 18:14:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281136.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Jan 2011 12:55:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Setproperty und Getproperty... on Thu, 27 Jan 2011 12:55:04 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe ursprünglich C# programmiert und versuche nun auf C++ umzusteigen. Ich habe aber noch eine grundsätzliche Frage:</p>
<p>In C# habe ich einfach eine Property definiert und diese dann nach belieben aufgerufen und verändert. In meinem C++ Buch ist oft die Rede von Setproperty(...) und Getproperty Funktionen. Wieso muss ich dafür in C++ extra Funktionen schreiben? Ist es unschön/ unsicher oder so, wenn ich die Property direkt ändere???</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013019</guid><dc:creator><![CDATA[Absolute_nooby]]></dc:creator><pubDate>Thu, 27 Jan 2011 12:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Thu, 27 Jan 2011 13:07:57 GMT]]></title><description><![CDATA[<p>Weil es dies nicht von Haus aus gibt. Mach doch mal ein Codebeispiel/Vergleich, dann können wir dir genauer helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013035</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Thu, 27 Jan 2011 13:07:57 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Thu, 27 Jan 2011 13:11:55 GMT]]></title><description><![CDATA[<p>Properties verbinden normalerweise ein Attribut einer Klasse mit einer Methode (wobei das Optional ist). Wenn Du z.B. ein GUI-Element hast, und dort die Property <code>setColor</code> , dann wird nicht nur das Attribut auf die gegebene Farbe gesetzt, sondern es wird auch der nötige Code zum Ändern der Farbe am Bildschirm ausgeführt. Wenn Du einfach nur <code>public</code> Attribute hast, dann geht das so nicht. Also: Setter/Getter-Methoden bereitsstellen. Das bietet auch noch andere Vorteile.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013038</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 27 Jan 2011 13:11:55 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Thu, 27 Jan 2011 13:20:26 GMT]]></title><description><![CDATA[<p>Wenn ich mal genauer drüber nachdenke, gibt es das ja auch bei C# mit den get- set Accessoren...</p>
<p>Kann ich folgendes so machen oder birgt das Nachteile?:</p>
<pre><code class="language-cpp">class A
{
public:
    A() {}
    string property;
};

class B
{
public:
    void method()
    {
        A instance = A();
        instance.property = &quot;DarfIchDas?&quot;;
    }
};
</code></pre>
<p>Wofür brauche ich dann die Setproperty() und die Getproperty() Methoden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013048</guid><dc:creator><![CDATA[Absolute_nooby]]></dc:creator><pubDate>Thu, 27 Jan 2011 13:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Thu, 27 Jan 2011 13:25:33 GMT]]></title><description><![CDATA[<p>Weil man über get/set-Methoden Grenzwerte abfragen und abfangen kann z.B.. Ja man kann mit dem .-Operator auf public member zugreifen. Private Member entsprechen einem korrekten objektorientieren Ansatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013051</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Thu, 27 Jan 2011 13:25:33 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Thu, 27 Jan 2011 13:25:47 GMT]]></title><description><![CDATA[<p>Das darf man so machen. Der Nachteil ist, dass dies nicht so tolles Design ist. Das Designprinzip das du verletzt nennt sich Kapselung. Muss man sich nicht dran halten, hat aber bei komplizierten Problemen einige Vorteile.</p>
<p>Aber das wird's doch wohl auch bei C# geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013052</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 27 Jan 2011 13:25:47 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Thu, 27 Jan 2011 13:41:51 GMT]]></title><description><![CDATA[<p>Nachteile sind halt die üblichen: Man kann den Zugriff nicht nachverfolgen, es gibt mehr Fehlermöglichkeiten (aus Versehen geändert), man kann nicht nachträglich die Implementierung ändern, ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2013065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2013065</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 27 Jan 2011 13:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Wed, 09 Mar 2011 12:12:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A;
class B
{
private:
    A* a;
public:
    void SetA(const A*&amp; aNew)
    {
	    a= aNew; //Error
    }
    const A&amp; GetA() const
    {
	    return *a;
    }

};
</code></pre>
<p>Wie würden die get, set Methoden für obiges Beispiel aussehen? Beim Set gibt es einen Fehler: &quot;const A * kann nicht in A* konvertiert werden&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2031727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031727</guid><dc:creator><![CDATA[Absolute_nooby]]></dc:creator><pubDate>Wed, 09 Mar 2011 12:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Wed, 09 Mar 2011 12:30:03 GMT]]></title><description><![CDATA[<p>Das würde wohl so aussehen, aber ob das ganze Sinn macht?</p>
<pre><code class="language-cpp">class A;

class B
{
    private:
        A* a;

    public:
        void SetA(A* aNew)
        {
            a = aNew;
        }
        A* GetA() const
        {
            return a;
        }
};
</code></pre>
<p>Wieso hattest du call-by-reference bei der set-Methode verwendet?</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2031739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031739</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 Mar 2011 12:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Wed, 09 Mar 2011 14:27:42 GMT]]></title><description><![CDATA[<p>Wieso sollte es keinen Sinn machen? Der Pointer geht auf eine abstrakte Klasse, die per get und set aufgerufen wird. ISt das untypisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2031809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031809</guid><dc:creator><![CDATA[Absolute_nooby]]></dc:creator><pubDate>Wed, 09 Mar 2011 14:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Setproperty und Getproperty... on Wed, 09 Mar 2011 15:17:29 GMT]]></title><description><![CDATA[<p>Hier treffen Welten aufeinander. C# verwendet eine Speicherverwaltung mit Garbage Collection, in C++ gibt´s das nicht. In C# werden Objekte mit new angelegt, in C++ sollte das die Ausnahme sein, wenn dynamischer Speicher benötigt wird bietet die STL/TR1/boost deutlich bessere Möglichkeiten als die Verwendung von Rohzeigern.<br />
Du solltest dir zunächst einmal darüber klar werden, wie C++ Speichermanagement funktioniert und welche Arten der Parameterübergabe in C++ existieren (Gugelmoser hat das Thema ja bereits angeschnitten).<br />
Am besten versuchst du das, was du in C# gelernt hast, zu vergessen und beginnst mit C++ von vorn. Syntaktisch ähneln sich die Sprachen zwar sehr, aber tatsächlich unterscheiden sie sich stark und die Programmierkonzepte sind nicht 1:1 übertragbar.</p>
<p>Edit:<br />
Hab gerade erst gesehen, dass A eine Abstrakte Klasse sein soll. Dann macht es natürlich Sinn, Zeiger zu verwenden. Aus dem Design sollte allerdings hervorgehen, wer Besitzer des mit new angelegten Objekts ist, damit er es wieder abräumen kann, falls es nicht mehr benötigt wird. Wie gesagt, in C++ gibt es keine Garbage Collection und dynamisch erzeugte Objekte werden nicht automatisch wieder abgeräumt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2031837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031837</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 09 Mar 2011 15:17:29 GMT</pubDate></item></channel></rss>