Bruce Eckel's Thinking in C++, 2nd Ed | Contents | Prev |
//: C03:Debug1.cpp // A class with a dump() function #include <iostream> using namespace std; class Debuggable { int counter; // Some sort of internal counter float a, b; // Data the user is aware of public: Debuggable(float x = 0.0, float y = 0.0) { a = x; b = y; counter = 2; } void set_a(float x) { a = x; counter++; } float read_a() { return a; counter++; } void set_b(float y) { b = y; counter++; } float read_b() { counter++; return b; } void dump(char * msg = "") { cout << msg << ":" << endl; cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "counter = " << counter << endl; } }; int main() { Debuggable U, V(3.14), W(1.1,2.2); U.set_a(99); U.dump("After 1 set_a"); U.read_b(); U.dump("After 1 read_b"); // Other operations ... V.dump("V"); W.dump(); // string argument is optional } ///:~