Использование const.
Общее правило заключается в том, что const применяется к объекту слева от const.Если const не является левой частью декларации, то она применяется справа.
// Thus these two are equivalent.
const char* data1; // 'pointer to' const char (const applied to right because it has nothing on left)
char const* data2; // 'pointer to' const char
Я предпочитаю ставить const справа, так как затем я могу последовательно использовать правило чтения типов справа налево.
char const* data3; // 'pointer to' const char (reading right to left)
char* const data4; // const 'pointer to' char (reading right to left)
Это стиль, и многие люди предпочитают const в крайнем левом углу (и достаточно умны, чтобы автоматически прочитать объявление в своей голове: -).
НО Когда это становится важным, когда вы добавляете typedefs в смесь:
typedef НЕ является текстовой заменой, если определяет псевдоним типа (или синоним).
typedef char* CHARP;
const char* data5a; // 'pointer to' const char
const CHARP data5b; // const ''pointer to' char' ***(NOT THE SAME AS above)***
char* const data6a; // const 'pointer to' char
CHARP const data6b; // const ''pointer to' char'
Так что, когда выначните использовать typedefs, значение может измениться (если вы поместите const в крайний левый угол) и просто сделайте текстовую вставку при создании ваших typedefs.Но th
Наконец, чтобы ответить на вопрос.
Вам нужен константный указатель в вашей структуре.Для этого убедитесь, что const находится справа от символа «*».
struct MyStruct
{
MyStruct(MyClass* const init_my_class_ptr)
: my_class_ptr(init_my_class_ptr)
{}
MyClass* const my_class_ptr; // const pointer to MyClass
};