我应该如何在const成员函数中重新解释这个指针?

时间:2017-01-14 04:39:15

标签: c++ pointers const reinterpret-cast

我最近一直在关注const-correctness,当我查看我的一些代码时,我注意到了

this
使用Visual Studio中的reinterpret_cast,可以将

指针强制转换为非const指针(看似无效)。

如下所示。

const uint32_t & T::func() const
{
    return *reinterpret_cast< const uint32_t * const>(this); // This compiles
}

const uint32_t & T::anotherfunc() const
{
    return *reinterpret_cast< const uint32_t * >(this); // This also compiles
}

是否有正确的方法可以做到这一点还是两者都正确?

另外,我认为reinterpret_cast应该停止更改const关键字?

很抱歉,如果问题似乎无关紧要,那只是我的好奇心。

0 个答案:

没有答案