Storage class determines the accessibility and lifetime of a variable. The main storage classes in C++ are automatic, external, static, and register. Automatic variables are local to a function and are created and destroyed each time the function is called. External variables have global scope and persist for the lifetime of the program. Static variables also have local scope but retain their value between function calls.