【发布时间】:2015-06-28 23:44:54
【问题描述】:
我正在阅读 C++ 代码。我看到一个静态变量已被用作计数器,并已在构造函数中初始化如下:
class Order{
int Number;
public:
Order(){
int static i=0;
Number=++i;
}
int getNumber(){
return Number;
}
.
.
因此,如果我们将“订单”类实例化如下:
Order *o1 = new Order();
o1.getNumber();
Order *o2 = new Order();
o2.getNumber();
Order *o3 = new Order();
o3.getNumber();
//Result : 1 ,2 ,3
我想知道在这种情况下静态变量是如何工作的。因为每次我们实例化 Order 类时,实际上我们都在设置 int static i=0; 所以我希望得到这样的结果:
1,1,1
但静态变量背后的过程似乎有所不同!那么,这个静态变量背后发生了什么以及它是如何工作的呢?
【问题讨论】:
标签: c++