c++ 关于静态成员函数和静态数据成员的使用

运行结果为

为什么第一个b就等于15,为什么不是12呢

第1个回答  推荐于2016-03-12
你的程序相当于
sample s1(2);//b=12
sample s2(3); //b=15
sample::disp(s1);
sample::disp(s2);
b是静态成员变量追问

可是如果只执行到sample::disp(s1);这一步
b不是等于12吗
那为什么第一个b也输出15呢
只要是静态成员变量,输出结果都是最终的那个值吗

追答

如果是只是sample s1(2); sample:;disp(s1)的话 就是12

如果你输入sample s1(2),sample s2(3),sample s3(5),sample:;disp(s1)的话 就是20了
你声明的对象是存放在栈中,而你声明的静态成员变量是存放在静态存储中,是没有关系的

本回答被提问者采纳
相似回答