【发布时间】:2016-06-20 09:04:14
【问题描述】:
#include <iostream>
using namespace std;
class MyStaticClass{
public:
static int value;
MyStaticClass(){
value++;
}
~MyStaticClass(){}
};
int MyStaticClass::value;
void main(){
MyStaticClass::value = 0;
for (int i = 0; i<9; i++)
MyStaticClass *c = new MyStaticClass();
cout << MyStaticClass::value;
system("pause");
}
请解释一下为什么结果是 9,当替换 MyStaticClass *c = new MyStaticClass() 为 MyStaticClass c() 时结果变为 0?最后int MyStaticClass::value;的含义是什么,为什么当我删除该行时编译器显示错误?谢谢大家!
【问题讨论】:
-
阅读您的问题和评论,我认为您应该阅读一本关于 c++ 的好介绍书(Thinking in c++ 是一个好的开始,并且可以在线免费获得)。