我有如下功能声明
void func1(const void& * pThis) {
MyClass* pMyClass = static_cast<MyClass*>(pThis); //....I use PMyClass pointer.
}
Run Code Online (Sandbox Code Playgroud)
我收到错误无法转换const void*为MyClass*
怎么做这一步?
您可以
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)
但如果可能,我会修改设计.
| 归档时间: |
|
| 查看次数: |
3725 次 |
| 最近记录: |