![](https://csdnimg.cn/release/download_crawler_static/87509833/bg2.jpg)
解析:(P136)变量存储类可分为两类:全局变量和局部变量。
(1)全局变量:在函数外部定义的变量称为全局变量,其作用域为:从定义变
量的位置开始
到源程序结束。全局变量增加了函数之间数据联系的渠道,全局变量作用域内的
函数,均可使用
、修改该全局变量的值,但是使用全局变量降低了程序的可理解性,软件工程学
(2)局部变量:在函数内部定义的变量称为局部变量,其作用域为:从定义变
量的位置开始
到函数结束。局部变量包含自动变量(auto)静态变量(static)以及函数参数。
auto变量意味着变量的存储空间的分配与释放是自动进行的。说明符auto可以省
略。函数中
的局部变量存放在栈空间。在函数开始运行时,局部变量被分配内存单元,函数
结束时,局部变
量释放内存单元。因此,任两个函数中的局部变量可以同名,因其占有不同的内
存单元而不影响
使用。这有利于实现软件开发的模块化。
static变量是定义在函数体内的变量,存放在静态存储区,不用栈空间存储,其
储空间的释放而消失。
4.
假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构
解析:(P79)a(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,
指针没有给它
分配空间,没有调用构造函数。所以共调用构造函数的次数为4。
如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函
a.operator++(1)
operator++(a)
operator++(a,1)
a.operator++()
解析:(P186)运算符的重载,前缀先让变量变化。调用++a,等价为
a.operator++(),注意无参
的形式。后缀的话a++,等价于a.operator(0),带形参,形参名可省。
已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明()