Could someone tell in general what goes to what (Harddrive,RAM, Stack or Heap) at runtime in C++ for these instances :
Local/global variables
All of them go into memory. Now, the definition of "in memory" depends on the operating system, compiler and linker options, the executable format and a million other factors.
On many modern operating systems, when a process is created, the executable file is mapped into memory (this means a memory region was reserved for the executable but doesn't mean the executable has been loaded in that location yet).
Some OSes will load parts of the executable file as it is accessed (see "delay loading"), which is more common for dynamically loaded libraries (DLLs on Windows, and Shared Objects on UNIX-like systems). This mostly influences the current "location" of functions, they are either "on disk" as the executable file, or "in memory" if that part of the executable has been mapped.
Variables and all other program data go to memory. However, any OS that operates with virtual memory may swap all your program's running state (including the stack and heap) to disk at its convenience, and then later restore it back to keep running your program.
In conclusion, all the items on your list (variables, functions, etc.) are in memory, although then may not be stored in "physical RAM" at all times.