Почему возможно иметь нестатическую переменную const в нестатическом методе внутри класса - PullRequest
0 голосов
/ 03 мая 2019

Я понял, что переменные const внутри классов должны быть статическими, потому что компилятор не может получить к ним доступ во время компиляции. Но почему тогда я могу иметь нестатический метод внутри этого класса, который содержит нестатический констант, не должен ли быть недоступным во время компиляции?

class ImmutablePoint {

  void someNonStaticMethod(){
    const v = 3;
  }
}

1 Ответ

0 голосов
/ 03 мая 2019

Я понял, что константные переменные внутри классов должны быть статическими, потому что компилятор не может получить к ним доступ во время компиляции-

Компилятор может получить доступ к чему угодно. В конце концов, он имеет доступ ко всему вашему исходному коду.

const члены должны быть static, чтобы подчеркнуть, что const объекты являются общими и не дублируются между экземплярами. ( Это также не всегда было так, что const ученикам требовалось static.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...