Це питання мені прийшло в голову, коли у мене було щось подібне
enum Folders {FA, FB, FC};
і хотів створити масив контейнерів для кожної папки:
ContainerClass*m_containers[3];
....
m_containers[FA] = ...; // etc.
(Використання карти це набагато елегантніше використання: std::map<Folders, ContainerClass*> m_containers;
)
Але повернусь до мого початкового запитання: Що робити, якщо я не хочу жорстко кодувати розмір масиву, чи є спосіб зрозуміти, скільки елементів у папках? (Не покладаючись на те, що, наприклад, FC
є останнім пунктом у списку, який дозволив би щось подібне, ContainerClass*m_containers[FC+1]
якщо я не помиляюся.)
int(FA) | int(FB) | int (FC)
це також юридичне значення для Folders
змінної. Якщо ви розмірите m_containers
так, щоб будь-яка Folders
змінна була дійсним індексом, [FC+1]
вона не буде достатньо великою