According to the Friendship and Inheritance tutorial (http://www.cplusplus.com/doc/tutorial/inheritance/), that code should work, but it doesn't. I am given an error: undefined reference to questsCompleted
Can someone point out what went wrong?
The compiler I am using is Code::Blocks, in case that helps.
Friendship lets you access the private members of a class when you have an object to call them from. If you wanted to keep with that style you would have to pass a Village object into charGen().
It depends how your game is set up and what other variables you need interacting (there isn't really enough here to say). For example I would expect the questsCompleted to belong to the Character class not the Village.
You could put both objects in your main game class and have them interact from there (or another similar class that accepts both objects to work on them). Class friendship is a risky thing to deal with and I would say avoid it unless you are really sure you need it.
You could make questsCompleted static if it's only ever needed once, but as I said it all depends on what you want to do exactly.