내 프로그램에서 pimpl 관용구를 사용하고 있는데 한 곳에서 멈추었습니다. 내 코드에서pImpl 포인터를 다시 호출자 유형으로 변환
Class*
Class::GetP()
{
return ClassImpl->GetP();
}
내 ClassImpl-> GETP() 당신이 내 발신자 유형 내 pImpl의 BACT를 변환해야 볼 수 있듯이 나는
ClassImpl*
ClassImpl::GetP()
{
return pClassImpl;
}
있습니다. 방법은 무엇입니까? 당신은 단순히
Class *
Class::GetP()
{
return this;
}
을하지 않을까요 Class::GetP()
의 발신자가 어쨌든 내부에 대한 포인터를하지 말았어야 때문에
캐스팅을 사용하지 않는 이유는 무엇입니까? –
'GetP'는 무엇을하고 있을까요? 왜 그것을 필요로합니까? – tzaman
GetP는 실제로 getP에 전달 된 매개 변수를 기반으로 만들어진 일부 유형의 새로운 인스턴스를 반환합니다. 또한 reintepret cast를 사용할 수 있지만 약간의 오버 헤드가 있습니다. 나는 해결책이 간단하고 무언가를 놓치고 있다고 생각한다. 실제로 – Yogi