seosova: Сервер знает. И только он.
Например когда я писал в универе простенькую игрушку с хранением сохранения в куках, писалось туда что-то вроде D0B72C01F57C5DB3. И без доступа к исходникам, фиг поймёшь, что первые три байта это инвертарь, следующий байт — позиция, а остальное — состояние локаций.
Сейчас туда обычно пишут какой-нибудь ИД сессии, чтобы исключить манипуляцию на стороне клиента.
seosova: >По сути почему я на своем пк не могу их изменить?
Можете. Через браузер.
Манипулировать куками может сайт, который их ставил или пользователь через консоль браузера.
> В чём тут вопрос безопасности? ( кроме варианта что мне вирус их там все подменил )
В этом и есть. Если дать свободный доступ к кукам: вшиваем в трояна хромиум, забираем куки от почты, подделываем user-agent и получаем доступ к почте.
Можете посмотреть, имеют ли аддоны доступ к кукам, и написать своего Павлика Морозова, который будет посредником между приложением и браузером.
fshp: ЕМНИП, хранится указатель на RTTI структуру класса, которая хранит указатели на RTTI предков. Что в принципе то же самое, и детали реализации могу отличаться.
fshp: Там несколько сложнее. Информация об иерархии таки сохраняется. Иначе указатель на базовый класс, который указывает на производный не получалось бы привести к указателю на промежуточный класс.
Олег Цилюрик: Я в предыдущем посту именно это и написал, нет?
Кстати, я заметил, что я соврал в самом первом посту, так как неправильно прочитал оригинальный ответ: я прочитал "Использовать UTF-8 в рантайме - глупо" и совет использовать std::string и решил что советуется результат конвертирования UTF-8 в что-либо с фиксированной шириной хранить в std::string. Просто хранить байты UTF-8 в строке можно, но опасно: слишком легко использовать какую-либо функцию специфичную для однобайтовых строк. Уж лучше vector
maaGames: Не путайте универсальный набор символов, который задаёт однозначное сопоставление символа и его АБСТРАКТНОГО кода и кодировки, которые задают соответствие кода символа и его машинного представления.
Единственная официальная кодировка с фиксированной шириной это UTF-32, по очевидным причинам. И UTF-16 и UTF-8 — кодировки с переменной шириной.
> Для хранения UTF-8 в рантайме можно использовать "обычный" std::string.
Особенно весело будет, если в строке будут содержаться не-ASCII символы.
> Иначе можно в юникоде и сохранять, разницы по объёму файла не будет.
В каком именно юникоде? UTF-8 это тоже юникод. Если взять UTF-32, то разница будет ощутимая в практически любом случае.
И вы ещё не учли случай, когда "постоянная" отрицательна. В таком случае выгодней каждому огурцу по своему парнику давать.