c++急急急急急急!!!!!!详细过程20分

[复制链接]
查看11 | 回复2 | 2009-9-18 18:47:44 | 显示全部楼层 |阅读模式
一楼的兄弟说得很对,我就不说了! 二楼的兄弟,你这部分有点问题哦!“int a=2) //因为a=1所以这里跳过了 {init(); a++; }没有执行。对于全局变量int A::a=0;来说,obj.a是一个局部变量,此时局部变量覆盖了全局变量,故输出为1 ”int A::a=0;的a是一个静态变量,没有说int A::a=0 就全局变量, 而obj.a就局部变量的。他们修改的都是同一个变量!
回复

使用道具 举报

千问 | 2009-9-18 18:47:44 | 显示全部楼层
答案为 1obj是一个类型为A的变量,obj.a就是类A里的成员变量,通过函数里的void init(){a=1;}可知:obj.a = 1;下面的(int a=2) //因为a=1所以这里跳过了 {init(); a++; }没有执行。对于全局变量int A::a=0;来说,obj.a是一个局部变量,此时局部变量覆盖了全局变量,故输出为1
回复

使用道具 举报

千问 | 2009-9-18 18:47:44 | 显示全部楼层
a初始化为0并且是静态变量首先是执行构造函数A(int a=2)——执行init() a=1;最后 a++;但是你要记住了执行只能是init()函数对a有影响。所以,结果应该为1.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行