1

私は自分のプログラムでpimplイディオムを使用していますが、1つの場所で立ち往生しています。私のコードは

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

私のClassImpl->GetP()には

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

ご覧のとおり、pImplbactを発信者タイプに変換する必要があります。方法は何ですか?

キャスティングは使いたくない
アドバイスをお願いします

4

1 に答える 1

0

単純にやらないでください

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

の呼び出し元はClass::GetP()とにかく内部へのポインタを持つべきではないので?(しかし、その方法は何のためにあるのでしょうか?それは、発信者にまだ持っていないものを何も与えません。)

于 2012-02-16T05:56:21.440 に答える