将pImpl指针转换回调用者类型

时间:2012-02-16 05:52:42

标签: c++ pimpl-idiom

我在我的程序中使用了pimpl成语,我被困在一个地方。我的代码是

Class*
Class::GetP()
{
return ClassImpl->GetP();
}

在我的ClassImpl-> GetP()中我有

ClassImpl*
ClassImpl::GetP()
{
return pClassImpl;
}

正如您所见,我需要将我的pImpl bact转换为我的调用者类型。 是什么方式?

我不想使用任何铸件
请建议

1 个答案:

答案 0 :(得分:0)

你不会只是做

Class *
Class::GetP()
{
    return this;
}

因为Class::GetP()的来电者不应该有指向内部的指针? (但是,那个方法是什么?它没有给调用者任何他们没有的东西。)