在学习C++时,按照书上的代码打下来,发现有一些代码结果与书上不一样。
例如下面这个:
#include
#include<stdlib.h>
using namespace std;
class A {
public:
A(int x) {
i = x;
cout << “constructor:” << i<< endl;
}
~A() { cout << “destructor:” <<i<< endl; }
private:
int i;
};
int main() {
A a1(1);
A a2(2);
A a3(3);
system(“pause”);
return 0;
}
书上的结果:
constructor:1
constructor:2
constructor:3
destructor:3
destructor:2
destructor:1
而我的结果:
constructor:1
constructor:2
constructor:3
试了几次我还以为是我打错了,或是IDE有问题,其实不是的。
最简便的方法是在main()主函数中,将system()之前的内容用{}包含。仅此就可以解决了,这是一个关于作用域的问题,更多的解决法自己去探索吧!