变量的一个变量在程序的某处没有可见性,但生命期任然可以存在,比如局部静态变量的可见性在它所在的函数里面,在函数外部不可访问,但是它的生命期确是整个程序的运行期间;而一个变量生命期结束,它也就没有了可见性,就像局部变量,随着栈空间的释放,它也就不存在了,所以外部无法访问。决定一个变量的可见性是变量被声明的位置,而决定一个变量的生命期是变量在内存中的位置.

深入C++可见性与生命期的区别详解