局部对象:
在C++中名字有作用域,对象有生命周期
1、 名字的作用域是程序文本的一部分,名字在其中可见
2、 对象的生命周期是程序执行过程中该对象存在的一段时间
3、 函数体是一个语句块,块构成一个新的作用域(C++程序中作用域是用{}分开的)
4、 在块中定义的形参和函数体内部定义的变量统称为局部变量,他们对函数而言是局部的,仅在函数的作用域内可见
5、 同时局部变量还会隐藏在外层同名的其它变量
6、 在函数体外声明的定义的变量存在于整个程序的执行过程,此类对象在程序启动时被创建直到程序结束才会被销毁
7、 对于普通的局部对象,当函数的控制路径经过变量定义的语句时创建该对象,当达到定义所在的块尾时销毁它,它在存在于函数执行期间(也被称为自动对象)
8、 形参也是一种自动对象,当函数开始时为形参申请存储空间,当函数结束被销毁
例子:
int i=5;
int fen(int h=10)
{
//声明了一个在函数内的局部变量
int i=0;
qDebug()<<i; //会输出0
}
qDebug()<<i; //会输出5,因为已经出了函数里面i的作用域,所有这里看见的是外面i的值5
qDebug()<<h; //提示程序错误,因为形参也是局部对象
博主QQ交流群:778212048