将 pImpl 指针转换回调用者类型
我在程序中使用 pimpl idiom,但我被困在一个地方。我的代码
Class*
Class::GetP()
{
return ClassImpl->GetP();
}
在我的 ClassImpl->GetP() 中,
ClassImpl*
ClassImpl::GetP()
{
return pClassImpl;
}
如您所见,我需要将我的 pImpl bact 转换为我的调用者类型。 有什么办法呢?
我不想使用任何铸造
请指教
I am using pimpl idiom in my program and I am stuck in one place. My code is
Class*
Class::GetP()
{
return ClassImpl->GetP();
}
In my ClassImpl->GetP() I have
ClassImpl*
ClassImpl::GetP()
{
return pClassImpl;
}
As you can see I need to convert my pImpl bact to my caller type.
What is the way?
I dont want to use any casting
Please advice
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你难道不应该这样做吗
既然
Class::GetP()
的调用者无论如何都不应该有一个指向内部的指针, ? (但是,这个方法的用途是什么?它不会为调用者提供他们尚未拥有的任何内容。)Wouldn't you simply do
since callers of
Class::GetP()
shouldn't have a pointer to the internals anyway? (But then, what is that method for? It doesn't give the caller anything that they don't already have.)