class TConst
{
const int i;
int& ref;
public:
TConst(int n):i(n),ref(n){}
static void p1(){prn(i);}//error here
};
Мой компилятор генерирует ошибку, когда я пытаюсь использовать элемент класса const
в функции-члене static
.Почему мы не можем использовать константные члены в статических функциях-членах?
Почему это запрещено?
Всегда помните, что полная ошибка, которую вы получаете. – orlp
const int по-прежнему привязан к объекту, а не классу. – nullpotent
В статическом методе нет экземпляра класса, поэтому нет членов класса ... FYI вы можете сделать это 'static const int i = 42;', если вы хотите использовать его таким образом. – AJG85