As soon as I wrap my head around all these other new C++ concepts I will go back and add appropriate access specifiers.
For now there is little chance i will misapply my own functions/methods and i need to follow KISS.
The two books I have read so far are Programming Principles and Practice using C++ 2nd Edition, Bjarne Stroustrup.
Chapter 12 goes over FLTK libraries, but his code is broken now. Use the one from github instead.
Its 1000 pages, but does a good job doing basic features and best practices.
The second book that I am on is A Tour of C++ 2nd edition, Bjarne Stroustrup.
It is ~200 pages and is a lot more technical. I Needed to have read PPP2 before this one.
It has a lot more explanation than https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines that it references often.
The book is from 2018 but has some C++ 20 features that are not fully implemented in compilers like modules.
These plus youtube have helped me a lot.
Hope they can help you too.
pk