Hello, short answer first: There is no "one size fits all", it depends.
And there are VERY different levels of C++ programmers. I used to teach entry level (with lots of playful fun) in about 2 weeks time to people already familiar in C. When i tried to learn it myself, it did cause a serious breakdown, bcoz assimilating OO seamed incomprehensible at the time. Only after quite some suffering (and 6 months abandonning the task) was my brain able to get into it. And since, i loved OO (C++ not so much, coz developing takes longer compared to other languages, of course, you gain fine-grained control). But, as always when engaging in learning: Use intelligence first to map out your goals, your motivation/interests, and split your path into several simpler steps, which (most importantly) allow yourself to keep the motivation/fun factor high. You'll need quite some to withstand inevitable crises during the learning process. ;-) See: i did neither recommend a single book, nor suggest some special exercise. But YOU should choose some. best of luck DdB