Make current mutable
#include <iostream> using namespace std; class Timer { int step; int target; mutable int current; public: Timer(int delay, int i=1) { target = delay; step = i; current = 0; } bool counting() const { current += step; if(current >= target) { cout << "\a"; return false; } cout << current << " "; return true; } }; int main() { Timer ob(200, 4); while(ob.counting()) ; return 0; }