シンプルなカウンターです。このメソッドadd
は、デフォルトでプライベート変数count
を 1 ずつインクリメントするために呼び出されています。連鎖できるように関数からクラスを返しているのですが、出力を見てみると、 3回Counter
呼び出したので3だと思っていたら1になってしまいました。add
#include <iostream>
#include <vector>
using std::cout;
class Counter {
public:
Counter() : count(0) {}
Counter add() {
++count; return *this;
}
int getCount() {
return count;
}
private:
int count;
};
int main() {
Counter counter;
counter.add().add().add();
cout << counter.getCount();
}