#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++?
Прочитав ваш вопрос и свой комментарий, я думаю, вам стоит прочитать хорошую книгу о введении C++ (Мышление в C++ это хороший старт, и он свободно доступен в режиме онлайн). –