So the constructor is called implicitly when the enclosing class is instantiated.
Yes.
I could declare a pointer only and instantiate it later, but I seem to remember CPP requring me to then dereference it every time I used it.
You have to dereference the object, too. The dereference operator is -> instead of ., but I can't see that as a major stumbling block.
But creating an overloaded constructor with no params then calling a sepperate initializer worked great.
That is the preferred technique for Arduino libraries.