<?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[Anfänger: class counter]]></title><description><![CDATA[<p>Wer kann mir erklären was macht dieser ctor in Klasse counter? Was bedeutet :x_(x) ??</p>
<p>[#include &lt;iostream&gt;</p>
<p>class counter {<br />
public:<br />
counter(int x = 0) : x_(x) { }<br />
int operator()() { return x_++; }</p>
<p>private:<br />
int x_;<br />
};</p>
<p>int main() {<br />
counter cnt(5);</p>
<p>for(int i = 0; i &lt; 10; ++i) {<br />
std::cout &lt;&lt; cnt() &lt;&lt; std::endl;<br />
}<br />
}]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135280/anfänger-class-counter</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 22:11:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135280.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Feb 2006 06:55:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfänger: class counter on Wed, 01 Feb 2006 06:55:03 GMT]]></title><description><![CDATA[<p>Wer kann mir erklären was macht dieser ctor in Klasse counter? Was bedeutet :x_(x) ??</p>
<p>[#include &lt;iostream&gt;</p>
<p>class counter {<br />
public:<br />
counter(int x = 0) : x_(x) { }<br />
int operator()() { return x_++; }</p>
<p>private:<br />
int x_;<br />
};</p>
<p>int main() {<br />
counter cnt(5);</p>
<p>for(int i = 0; i &lt; 10; ++i) {<br />
std::cout &lt;&lt; cnt() &lt;&lt; std::endl;<br />
}<br />
}]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/982681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982681</guid><dc:creator><![CDATA[carmen]]></dc:creator><pubDate>Wed, 01 Feb 2006 06:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: class counter on Wed, 01 Feb 2006 07:04:59 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;

class counter {
public:
  counter(int x = 0) : x_(x) { } //konstruktor mit initialisierungsliste und standardwert. 

// eine initialisierungsliste hängt man mit einfachem doppelpunkt an
// x_ (x) ist eine zuweisung, sprich der in x übergebene wert wird der membervariable x_ zugewiesen
// initialisierunglisten nutzt man zum intialisieren von membervariablen

  int operator()() { return x_++; }

private:
  int x_;
};

int main() {
  counter cnt(5);

  for(int i = 0; i &lt; 10; ++i) {
    std::cout &lt;&lt; cnt() &lt;&lt; std::endl;
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/982684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982684</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Wed, 01 Feb 2006 07:04:59 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: class counter on Wed, 01 Feb 2006 07:27:32 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Hilfe! Ich habe noch viel zu lernen....So ein Forum ist eine ganz gute Idee...</p>
<p>HAst du ein Beispiel, wo überladen von Operator () sinvoller wäre, als in Klasse counter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/982697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982697</guid><dc:creator><![CDATA[carmen]]></dc:creator><pubDate>Wed, 01 Feb 2006 07:27:32 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: class counter on Wed, 01 Feb 2006 07:45:10 GMT]]></title><description><![CDATA[<p>Ja, in Funktoren (das sind Objekte, die sich wie Funktionen verhalten, aber einen eigenen Status mitschleifen können).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/982710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982710</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 01 Feb 2006 07:45:10 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: class counter on Wed, 01 Feb 2006 09:17:55 GMT]]></title><description><![CDATA[<p>Die Klasse counter ist ein Funktor. Carmen möchte aber wissen, wofür Funktoren gut sind.</p>
<p>Funktoren werden oft in der STL verwendet. Ich habe hier gerade ein Beispiel, wo ich aus einer std::list einige Elemente nach bestimmten Kriterien entfernen möchte. Dazu schreibe ich mir einen Funktor mit Rückgabewert bool und einem Parameter und verwende übergebe diesen an std::list::remove_if. Etwa so:</p>
<pre><code>class MyFilter : public std::unary_function&lt;const myObject&amp;, bool&gt;
{
    // irgendwelche Zustandsvariablen

  public:
    void setKriteriumXyz(int);
    bool operator() (const myObject&amp; o) const;
};

typedef std::list&lt;MyObject&gt; MyObjectList;
MyObjectList meineListe;

...

MyFilter filter;
filter.setKriteriumXyz(345);  // übergebe Kriterium an den Filter
meineListe.remove_if(filter);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/982804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982804</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 01 Feb 2006 09:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger: class counter on Wed, 01 Feb 2006 11:59:05 GMT]]></title><description><![CDATA[<p>Hmmm, also ich persönlich finde operator()() in counter eigentlich nicht so gut.</p>
<p>Ein Funktor ist eine Klasse, deren Objekte sich wie Funktionen einsetzen lassen. Im Beispiel von tntnet sieht man eine Anwendung, bei der das nützlich ist: remove_if() kann man genauso gut mit einer geeigneten Funktion, wie mit einem Objekt einsetzen. Das macht remove_if() flexibler.</p>
<p>Im Falle von counter sehe ich diese Anwendung nicht, also fände ich eine ganz normale Funktion value() (oder so) besser, weil ausdrucksstärker.</p>
<p>Bloß eine Meinung....</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/982906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/982906</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Wed, 01 Feb 2006 11:59:05 GMT</pubDate></item></channel></rss>