#include <stdio.h>
class C
{
public:
static int i;
static int j;
};
int i = 10;
int C::i = 20;
int C::j = i + 1;
int main ()
{
printf("%d", C::j);
return 0;
}
Каково значение: C:: j
Я читал викторину С++ и наткнулся на следующий вопрос. Я думал, что ответ 11.
int C::j = i + 1;
Поскольку он обращается к нестационарной i, которая равна 10? Итак, я думал, что 11 должен быть ответом?
Я скомпилировал и запустил этот код через визуальную студию, и он печатает 21. Что меня смущает. Может кто-нибудь объяснить, почему это происходит? Что мне не хватает?