多了一个int, 导致成员变量值异常, 定位问题花费15分钟(后来又遇到此bug, 1分钟解决)

来源:互联网 发布:知信轰炸机接口 编辑:程序博客网 时间:2024/05/22 03:52

       原来的程序相对复杂, 本文简化说明。


       到处是坑啊:

#include<iostream>using namespace std;class A{public:int x;A(){x = 0;}void test();};void A::test(){int x = 100;}int main(void){A a;a.test();cout << a.x << endl;    return 0;}
      a.x的值居然是0, 不是100,  在仔细看了下, 尼玛, 局部变量和成员变量同名了, 这是程序风格的大忌啊, 修改如下:

#include<iostream>using namespace std;class A{public:int m_x;A(){m_x = 0;}void test();};void A::test(){m_x = 100;}int main(void){A a;a.test();cout << a.m_x << endl;    return 0;}
      这下好了。 真操蛋, 程序风格又给我上了一课。




 

1 0
原创粉丝点击