Я довольно новичок в c ++ и пытаюсь создать массив указателей const для хранения ярлыков нескольких структур.
У меня проблема в том, что C ++ 03 (или компиляторЯ использую - gcc 4.4.7), видимо, не поддерживает постоянные массивы указателей?Или, по крайней мере, вы не можете создать их для существующих объектов?
Чтобы уточнить, сами указатели должны быть постоянными, но объекты, на которые они указывают, являются переменными.И структура массива имеет решающее значение, потому что это значительно упрощает мой код, если я смогу получить доступ к этим объектам по индексу позже.
Это для работы с аппаратным обеспечением космического корабля, которое имеет летное наследие или что-то подобное, поэтому использовать его невозможноболее новый компилятор: /
struct Type1 {
unsigned short thing1;
};
struct Type2 {
Type1 thing2;
};
struct Type3 {
Type2 thing3;
};
class A {
Type3 Array[4];
Type1 *const pArray[4] = {
&Array[0].thing3.thing2,
&Array[1].thing3.thing2,
&Array[2].thing3.thing2,
&Array[3].thing3.thing2
};
};
error: a brace-enclosed initializer is not allowed here before ‘{’ token
error: ISO C++ forbids initialization of member ‘pArray’
error: making ‘pArray’ static
error: invalid in-class initialization of static data member of non-integral type ‘MyType* const [4]’
Так возможно ли сделать то, что я пытаюсь сделать, используя компилятор, который я использую?