为什么输出结果不一样

为什么最后输出的a等于1呀,经过构造函数a最后变成了3,在主函数输出时又变成了1是怎么回事呀

img

因为构造函数内输出的都是构造函数参数变量a,而不是类成员变量 a
而main里输出的却是类的成员变量a,这个a在构造函数中并没有被改变。
如果在构造函数最后增加this->a = a;那么main里输出的就是修改过的a了

此a非彼a,一个是参数,一个是静态成员,这也是程序员们容易写出bug的一种写法

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632