Yes, it is normal to forget. But as Crazy Eddie said, knowing good programming style and technique in one language is generally applicable to another, provided it is not too different. For example, techniques that work well in C++ might not translate well to something like Lisp (though Lisp experts might argue that Lisp skills make you better at everything).
I find that reading a book about a language will only get you so far as to be able to understand code in that language when you read it. To know how to write in it, you really need to do a non-trivial project with it. Once you accomplish that, you might forget a few details after an absence, but your skills will quickly return when needed. Only by building something in a language do you begin to get the intuitive sense of how its pieces fit together that you need in order to excel at it.