#include #include using namespace std; class CCounter { private: int f_MaxValue; int f_Counter; bool f_OverflowFlag; bool overflow() { return f_OverflowFlag; } void increment(int inc) { int newCounter = f_Counter + inc; // if smaller - int limits overflow if(newCounter < f_Counter || // if MaxValue is not -1, check for its overflow (f_MaxValue != -1 && newCounter > f_MaxValue)) { f_OverflowFlag = true; newCounter = newCounter - f_MaxValue; } f_Counter = newCounter; } public: CCounter(int max) : f_MaxValue(max), f_Counter(0), f_OverflowFlag(false) {} CCounter() : f_MaxValue(-1), f_Counter(0), f_OverflowFlag(false) // no max value {} ~CCounter() { } void reset() { f_Counter = 0; f_OverflowFlag = false; } void incrcents() { increment(1); } void incrdimes() { increment(10); } void incrdollars() { increment(100); } void incrtendollars() { increment(1000); } void reportoverflow() { if(overflow()) cout << "Overflow" << endl; else cout << "No Overflow" << endl; } void currentamount() { cout << f_Counter/100 << " dollars and " << f_Counter%100 << " cents. " << endl; } }; int main() { CCounter asdf; asdf.incrcents(); asdf.incrdimes(); asdf.incrdollars(); asdf.incrtendollars(); return 0; }//end main /*int main() { counter asdf; asdf.incpennies(); asdf.incdimes(); asdf.print(); return 0; }//end main class counter { public: void incpennies(); void intdimes(); void intdollars(); void inttendollars(); void print(); private: float count; } counter::counter() { count=0; } void counter::incpennies() { count+=.01; } void counter::incdimes() { count+=.10; } void counter::incdollars() { count+=1.00; } void counter::inctendollars() { counter+=10.00; } //do this for all and change the value void counter::print() { cout << count << endl; } */ /* class counter { private: int cents; int dimes; int dollars; int tendollars; public: void incrcents(); void incrdimes(); void incrdollars(); void incrtendollars(); void initializations(); }; */