<?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[ADD_MEMBER-Macro, Meinung?]]></title><description><![CDATA[<p>Mir ist soeben ein Macro untergekommen, dass eine Membervariable einer Klasse hinzufügt, ich wollte dazu mal eure Meinung hören:</p>
<pre><code class="language-cpp">#define ADD_MEMBER(TYPE, NAME) \
private: \
	TYPE NAME##_; \
public: \
	const TYPE&amp; NAME() const {return NAME##_;} \
	void NAME(const TYPE&amp; NAME) {NAME##_ = NAME;}

// In Anwendung dann: 

#include &lt;iostream&gt;

class NamedObject {
    ADD_MEMBER(std::string, name)
};

int main() {
    NamedObject obj;
    obj.name(&quot;Foo&quot;);
    std::cout &lt;&lt; obj.name() &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/308210/add_member-macro-meinung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 02:03:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308210.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Sep 2012 06:56:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 06:56:12 GMT]]></title><description><![CDATA[<p>Mir ist soeben ein Macro untergekommen, dass eine Membervariable einer Klasse hinzufügt, ich wollte dazu mal eure Meinung hören:</p>
<pre><code class="language-cpp">#define ADD_MEMBER(TYPE, NAME) \
private: \
	TYPE NAME##_; \
public: \
	const TYPE&amp; NAME() const {return NAME##_;} \
	void NAME(const TYPE&amp; NAME) {NAME##_ = NAME;}

// In Anwendung dann: 

#include &lt;iostream&gt;

class NamedObject {
    ADD_MEMBER(std::string, name)
};

int main() {
    NamedObject obj;
    obj.name(&quot;Foo&quot;);
    std::cout &lt;&lt; obj.name() &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2252173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252173</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 18 Sep 2012 06:56:12 GMT</pubDate></item><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 07:05:33 GMT]]></title><description><![CDATA[<p>Inhaltlich sinnlos. Da kann man auch gleich public-Member anlegen.</p>
<p>Handwerklich fragwürdig, da es den Zugriffsspezifizierer ändert. Was danach steht, ist public, egal, was davor steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252174</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 18 Sep 2012 07:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 07:07:16 GMT]]></title><description><![CDATA[<p>Den gleichen Effekt erreiche ich einfacher, ohne Pseudo-Objektorientierung und ohne unerwartete Makroeffekte (dein Makro setzt zum Beispiel die Sichtbarkeit unerwartet auf public):</p>
<pre><code class="language-cpp">struct Foo
{
 std::string name;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2252175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252175</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Sep 2012 07:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 07:10:12 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>Mir ist soeben ein Macro untergekommen,</p>
</blockquote>
<p>&quot;Untergekommen&quot;? Eingefallen oder irgendwo im Netz oder Literatur über den Weg gelaufen?</p>
<ul>
<li>Eingefallen: Schnell vergessen</li>
<li>Netz: Nicht jeden Scheiß für voll nehmen, der im Netz steht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></li>
<li>Literatur: Rundablage...</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/2252178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252178</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 07:10:12 GMT</pubDate></item><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 07:14:18 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Netz: Nicht jeden Scheiß für voll nehmen, der im Netz steht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Ebendrum habe ich nochmal nachgehakt, weil es einfach viel zu wenig guten Code im Internet gibt, den großen Nachteil mit dem public sehe ich selber <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Danke jedenfalls für die Antworten. <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>PS.: Ich bin froh, dass ich keine Literatur als (Hardware-)PDF habe, die mit Macros umsich schmeißt <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/2252179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252179</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 18 Sep 2012 07:14:18 GMT</pubDate></item><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 07:21:03 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>Ebendrum habe ich nochmal nachgehakt, weil es einfach viel zu wenig guten Code im Internet gibt, den großen Nachteil mit dem public sehe ich selber <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Siehst du denn auch den anderen großen (größeren?) Nachteil, also den designerischen, jeden Member automatisch mit Getter und Setter auszustatten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252184</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 Sep 2012 07:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 07:43:16 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Cyres schrieb:</p>
<blockquote>
<p>Ebendrum habe ich nochmal nachgehakt, weil es einfach viel zu wenig guten Code im Internet gibt, den großen Nachteil mit dem public sehe ich selber <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Siehst du denn auch den anderen großen (größeren?) Nachteil, also den designerischen, jeden Member automatisch mit Getter und Setter auszustatten?</p>
</blockquote>
<p>Ich weiß, dass wir die Disskussion vor einigerzeit schonmal hatten, weiß aber nicht, ob du daran beteiligt warst (ich gehe mal von aus). Ich bin der Meinung, man sollte nicht jeden kleinen Mist mit Gettern und Settern versehen, sie bringen aber eine Durchgängigkeit ins Projekt. Bei Containerklassen wie zum Beispiel Size oder Point sind Getter/Setter total überflüssig und stören sogar den Lesefluss. Dazu kommt, wenn man nicht gerade einen Getter wie operator[] hat, dann fehlen einem die Inc/Decrementoren und die Verknüften Zuweisungsoperatoren, was einen gravierenden Nachteil zur Folge hat.<br />
Ein sehr guter Vorteil von Gettern und Settern sind der gekapselte Zugriff auf interne Daten, d.h. man kann (gerade bei längerfristigen Projekten) interne Strukturen verändern, ohne das sich eine Schnittstelle nach außen verändert, höchstens ergänzt wird. Ebenso kann man Funktionalitäten wie notifies etc. hinzufügen, da ist natürlich wieder der Anwendungsfall entscheident.</p>
<p>Resume: Getter und Setter sind Abhängig von der Anwendung gut oder schlecht. Für nicht-Containerklassen sind sie häufiger zu gebrauchen als für Containerklassen, im großen und ganzen kann man nicht global für oder gegen sie sprechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252191</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Tue, 18 Sep 2012 07:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to ADD_MEMBER-Macro, Meinung? on Tue, 18 Sep 2012 08:01:27 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>Resume: Getter und Setter sind Abhängig von der Anwendung gut oder schlecht.</p>
</blockquote>
<p>Eben. Und damit sind die pauschalen Standard-Getter/Setter des Makros einfach nur Schwachsinn <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2252197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2252197</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 18 Sep 2012 08:01:27 GMT</pubDate></item></channel></rss>