正确的方法来复制MyGreatClass的const *实例

时间:2015-04-07 10:43:10

标签: c++ const copy-constructor

让我为未来像这样的白痴重新说明......

为什么这不起作用?是因为我忘了取消引用一个指针?答案结果是肯定的。忽略这句话的其余部分,这只是必要的,因为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...

1 个答案:

答案 0 :(得分:1)

只需使用MyGreatClass的隐式声明的复制构造函数来制作副本:

MyGreatClass changableGreatClass(*instanceOfMyEvenBetterClass.great);
                              // ^ dereference the pointer
相关问题