Позвольте мне перефразировать это для будущих идиотов, как я ...Правильный способ скопировать константный * экземпляр MyGreatClass
Почему это не работает? Это потому, что я забыл разыменовать указатель? Ответ оказывается «да». Игнорируйте остальную часть этого предложения, это необходимо только потому, что StackOverflow считает, что у меня слишком много кода и недостаточно подробностей. Я очень рад, заверять, пока красное окно предупреждения не уходит ... ой, там идет ...
struct MyGreatClass
{
};
struct MyEvenBetterClass
{
const MyGreatClass* great;
MyEvenBetterClass(MyGreatClass* grr)
{
great = grr;
}
};
MyGreatClass instanceOfGreatClass;
MyEvenBetterClass instanceOfMyEvenBetterClass(&instanceOfGreatClass);
MyGreatClass changableGreatClass(instanceOfMyEvenBetterClass.great);
//^^this line won't work because the pointer isn't dereferenced...
Вы говорите о конструкторе копирования? Вы должны описать, для чего вам нужен этот код, поэтому будут более релевантные комментарии. – teivaz
Я ... ммм ... я думаю, я говорю о конструкторе копирования. В основном мне нужно сделать заменяемую копию экземпляра класса, который абсолютно не должен изменяться. – Argh
Также, возможно, будет больше безопасности, чтобы избежать использования такого большого количества указателей на C++? И вместо этого используйте ссылки? Другой подход - использовать MyGreatClass :: Clone() вместо конструктора копирования. – deeptowncitizen