Java финал против C ++ const - PullRequest
       58

Java финал против C ++ const

142 голосов
/ 11 февраля 2011

В учебнике Java для программистов на C ++ говорится, что (выделение - мое):

Ключевое слово final примерно эквивалентно const в C ++

Что значит «примерно» в этом контексте?Разве они точно не одинаковы?

В чем различия, если таковые имеются?

Ответы [ 11 ]

0 голосов
/ 18 января 2015

ключевое слово "const" означает, что ваша переменная сохраняется в ПЗУ (с микропроцессором). на компьютере ваша переменная сохраняется в области ОЗУ для кода сборки (только для чтения ОЗУ). это означает, что ваша переменная отсутствует в ОЗУ с возможностью записи: статическая память, стековая память и кучная память.

Ключевое слово "final" означает, что ваша переменная сохраняется в ОЗУ с возможностью записи, но вы замечаете, что ваша переменная изменяется только один раз.

//in java language you can use:
static final int i =10;
i =11; //error is showed here by compiler

//the same in C++ the same as follows
int i =10;
const int &iFinal = i;

iFinal = 11; //error is showed here by compiler the same as above

Я думаю, "const" плохо работает, поэтому Java его не использует.

...