ADT in C style
struct ctr { int n; } void ctr_init(ctr& c) { c.n = 0; } void ctr_add(ctr& c, int i = 1) { c.n = c.n + i; } int ctr_val(ctr& c) { return c.n; }
Usage
ctr c; ctr_init(c); ctr_add(c,1); \c\{ cout << ctr_val(c); \} \c\{ ctr* p = new ctr; ctr_init(*p); ctr_add(*p); \}