I believe OpenGL is an open standard, rather than being open source. But that's a mistake we all make at some point.
My understanding is that the main distinguishing characteristic between C and C++ is that C++ is object oriented, while C is not. My experience with C is limited though, however OO is the dominant kind of programming knocking around right now I believe. If you've ever worked in one of the .net languages, that's OO.
One metaphor I find is nice with OO programming is to imagine what you want your program to do is a project you're overseeing, and each of your objects is somebody on your team working on it. You organize them to work on their own parts, and at the end, you get the big picture you want.
I'm afraid I can't point you in the direction of a good book or anything, as I approached C++ with lots of prior experience in OO programming. I'm sure there's plenty of people here who can, though!
And finally, I'd have assumed your native language was English. You write very eloquently, and use punctuation well. There's people born here in England whose English isn't as clear as yours!
I hadn't thought of it like that. I just assumed that templates came with a huge level of extra functionality which was going to waste.
I've done some experiments, and I think you're right. I really like how the template solution has worked out so far. I want to play around with it some more first, to better get to know it. But it's looking very likely that's the way I'll go!
Templates do seem like a nice solution, although I can't help but wonder whether it's a bit overkill, since there's only the two versions of each I need. Are there any other ways I could do this for comparison?
DDS is good, yes. It's lossy for sure, but like FLeBlanc said it can contain a full mipmap chain, and you can load it directly into your GPU's video RAM via the appropriate API calls without needing to go through any intermediate software stages.
DDS isn't necessarily lossy. DXT compression is lossy, but with DDS images, you have the option of using either that or storing them in an uncompressed format.
I'd recommend experimenting with it a bit, as with some maps, this compression isn't a problem, and in others it is. For instance, DXT compressed normal maps tend to have quite ugly artefacts when used in game, but it's much less significant in DXT compressed albedo maps.