How does this do what it does (C++ classes, use of colon)

Thanks for the extensive reply; plenty to study :wink:

I was about passing the array (and the use of the colon for that).

Interesting to know, I think I'm battling with that in another class that I'm writing; but that is for another topic.

The begin() is clearly hardware related :wink:

I wasn't happy with that either; I actually wanted to do what I do in structs (you can add function pointers to it simulating the virtual functions).

struct ABC
{
  const uint8_t pins[8];
  uint8_t value;
};

ABC someArray[] = 
{
  {{2,3,4}, 0},
  {{5,6,7}, 0},
};