我在我的程序中使用了 pimpl idiom,但我被困在一个地方。我的代码是
Class*
Class::GetP()
{
return ClassImpl->GetP();
}
在我的 ClassImpl->GetP() 中我有
ClassImpl*
ClassImpl::GetP()
{
return pClassImpl;
}
如您所见,我需要将我的 pImpl bact 转换为我的调用者类型。 路在何方?
我不想使用任何转换
请指教
最佳答案
你不会简单地做
Class *
Class::GetP()
{
return this;
}
因为 Class::GetP()
的调用者不应该有指向内部的指针吗? (但是,那个方法是干什么用的?它不会给调用者任何他们还没有的东西。)
关于c++ - 将 pImpl 指针转换回调用者类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306226/