Joining an open-source project is certainly one way to get started. However, I've been using open-source software for years, and quite frankly, the quality on almost all such projects is generally in the toilet. If you learn your programming and design skills entirely from them, you'll probably pick up some very poor ones along with the good ones, with no way to tell the difference between them.
What do you want to learn programming for? The answer to that will determine what you should look for, and where. Here are some common answers, and my professional opinion on how to pursue them (keep in mind that it is just opinion, though IMHO, accurate):
Just to say that you know how to do it.
Then you don't really need a mentor, and C++ is a poor place to start. I love C++, it's my first choice for general programming, but play with another language instead. I'd suggest Python; it has a much gentler learning curve than C++, and unlike some languages (no names mentioned, I didn't wear my asbestos underwear today) you'll still learn a few useful skills in case you want to get into it further later. A lot of the concepts can translate directly to C++ if you decide to continue on that route.
Just to try it out and see if you like it.
An open-source project might be good enough for that. Pick a program that you like, but that you've found some problems or irritations with, and offer your help to whoever is running it. Most open-source projects are open to contributions, that's generally why they're open-source in the first place.
However, in that case, do not try C++ as your first programming language. It's not hard to master the basics, but C++ is low-level enough that you can get some serious and very hard-to-find bugs in your programs. Unless you already know you love programming, or you're as stubborn as the proverbial ox, or have already found a mentor who can point you in the right direction, that will kill any budding interest you might have in the field. See the above answer about Python, it's better suited for that.
Because you have an idea for a specific program you want to write.
(I don't think that the OP is in this category, I'm putting it in for later readers.)
Do you have any idea of the time required to master program design and implementation? As a hint, it's measured in years. You might be able to come up with a half-decent design after only a few months of study, if you're both smart and extremely lucky, but anyone with a little experience who has to work on it (including you, later) will wish that you'd never been born -- I speak from experience. :-) Unless the idea is so super-secret that no one else can know about it until it's done, don't bother. Hire an experienced programmer to do it for you, or if you can't afford one but still want the program badly enough, offer to partner with one -- you handle the business side and let him handle the programming part. Most good developers would prefer to be programming, so that kind of offer can be worth it to them.
Because you already know that you're fascinated by programming and want to learn more.
Then you're on exactly the right track. :-) Whether it's just as a hobby or is something you might turn into a career later, if you've got the kind of personality that finds it endlessly fascinating, the best thing you can do is to immerse yourself in it. C++ is as good a language as any, in that case, and a mentor will definitely help (and with more than just developing your skills; it can get lonely without friends who share your passion).