Contrary to popular belief, a variable declared in a member function can be used in another member function. There are two obvious ways to do this.
First, if this member function calls another member function, passing a pointer or referencing this variable to the second member function. A variable exists from the moment the first member function is called until it leaves this call; if during this time it calls some other function, this other code can use the variable (if the member function does something to give it access).
Secondly, if you are dealing with a static variable defined in a member function. This (on one example) is the essence of Meyers singleton. A static variable is defined in a member function, and not just for other members of a singleton, but in fact the rest of the program that accesses the singleton object uses the static variable defined in that member function.
In the second question, you're right - a variable defined in a member function is pretty much like any other local variable. It can be passed as a parameter, like everything else.
Jerry Coffin
source share