将const void*指针转换为特定的类指针

ven*_*rty 4 c++

我有如下功能声明

void func1(const void& * pThis) {
    MyClass* pMyClass = static_cast<MyClass*>(pThis);    //....I use PMyClass pointer.
}
Run Code Online (Sandbox Code Playgroud)

我收到错误无法转换const void*MyClass*

怎么做这一步?

unk*_*ulu 5

您可以

MyClass* pMyClass = const_cast<MyClass*>( static_cast<const MyClass*>(pThis) );
Run Code Online (Sandbox Code Playgroud)

但是这个糟糕的语法是提示:为什么函数有一个const参数,你不希望它是这样的

void func1(void * pThis) {
Run Code Online (Sandbox Code Playgroud)

当然,你可以使用C风格的强制转换:

MyClass* pMyClass = (MyClass*)pThis;
Run Code Online (Sandbox Code Playgroud)

但如果可能,我会修改设计.