让我为未来像这样的白痴重新说明......
为什么这不起作用?是因为我忘了取消引用一个指针?答案结果是肯定的。忽略这句话的其余部分,这只是必要的,因为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...
答案 0 :(得分:1)
只需使用MyGreatClass的隐式声明的复制构造函数来制作副本:
MyGreatClass changableGreatClass(*instanceOfMyEvenBetterClass.great);
// ^ dereference the pointer