void SetInterface( uvs::interactor::InteractorImpl* const interface) noexcept; using uvs::interactor::InteractorImpl; static uvs::interactor::InteractorImpl* m__impl{nullptr}; void SetInterface(InteractorImpl* const interface) noexcept { m_impl = interface; } 这段代码报以下错误 什么原因Redeclaration of object/function is typename incompatible with "void SetInterface(uvs::interactor::InteractorImpl *)".
时间: 2024-04-10 18:27:39 浏览: 109
SetInterface
这个错误提示是因为你在代码中重复声明了一个与之前声明的函数 `SetInterface()` 类型不兼容的函数 `SetInterface()`。
在你的代码中,首先你声明了一个函数 `SetInterface()`,它接受一个指向 `uvs::interactor::InteractorImpl` 类型对象的指针作为参数。然后,你再次定义了一个名为 `SetInterface()` 的函数,但它的参数类型是 `InteractorImpl*` 而不是 `uvs::interactor::InteractorImpl*`。
要解决这个错误,你需要确保函数声明和定义中的参数类型完全一致。你可以修改函数定义,使其与先前的声明匹配。例如:
```c++
void SetInterface(uvs::interactor::InteractorImpl* const interface) noexcept {
m__impl = interface;
}
```
在上述示例中,我们将函数定义中的参数类型修改为 `uvs::interactor::InteractorImpl*`,与先前的声明相匹配。确保你的声明和定义中的参数类型一致,这样就可以解决这个错误。
阅读全文