У меня есть член класса static const array (const указывает на SDL_Surfaces, но это неуместно), и ему нужно пройти его, чтобы заполнить его. Помимо const_cast, когда я делаю цикл, который я слышу, это плохая практика, как бы я это сделал?Является ли const_cast приемлемым при определении массива?
EDIT: Поэтому я не просто сделать ...
static SDL_Surface *const myArray[3];
...
class::myArray[3] = {...};
является то, что мне нужно прочитать из другого массива и запустить функцию на соответствующем значении различного массива для того, чтобы получить значение для этого массива. Как только я зациклился до конца, я больше не буду изменять этот массив, поэтому, как я его вижу, он должен быть const.
EDIT 2: Я думаю, что, возможно, я сделал концептуальную ошибку. Возможно ли const_cast каким-то образом сделать что-то const, а не удалять его константу, чего я пытаюсь сделать? Если нет, то я был немного глупым, прося об этом: D
Если вы не можете инициализировать массив с его окончательным значением, вы не сможете создать массив 'const'. Возможно, вам следует более подробно рассказать о проблеме, которую вы пытаетесь решить? –
Что вы заселяете? – JoshD
Если объект const, когда вы пишете его, вы получаете неопределенное поведение. Период. Вам нужно * инициализировать * его, а не назначать. – GManNickG