noGiven プライベート Member pData
private:
T* pData; // Generic pointer to be stored
以下は、* と -> のオーバーロードされた実装です。
T& operator* ()
{
return *pData;
}
T* operator-> ()
{
return pData;
}
以下に示すように、メインから同じものを呼び出します。
void main(){
SP<PERSON> p(new Person("Scott", 25));
p->Display();
}
ここで -> および "*" 演算子のオーバーロードがどのように機能するのか理解できませんか? またはより明確にするために、どのp->Display();
ように解釈されますか?