我在程序中使用了pimpl习惯用法,并且被卡在一个地方。我的代码是
Class*
Class::GetP()
{
return ClassImpl->GetP();
}
在我的ClassImpl-> GetP()中
ClassImpl*
ClassImpl::GetP()
{
return pClassImpl;
}
如您所见,我需要将pImpl bact转换为我的呼叫者类型。
怎么了
我不想使用任何演员表
请指教
最佳答案
你不是简单地做
Class *
Class::GetP()
{
return this;
}
因为
Class::GetP()
的调用者无论如何都不应该有指向内部的指针? (但是,那是什么方法呢?它没有给调用者任何他们没有的东西。)