8

operator->() のようなものが呼び出されている C++ コードに出くわしました。以下はコードスニペットです。誰かが説明してください。

template <typename T>
bool List<T>::operator == (const List& rhs)const
{
  return (this == &rhs) || (root_.operator->() == rhs.root_.operator->());
}

root_ は、完全なコードを入手できない別のクラスのオブジェクトであることに注意してください。

編集:コードを調べたところ、root_ は実際にはスマート ポインターのカスタム実装であることがわかりました。スマートポインターを逆参照して実際のポインターの値を取得するために、演算子 -> がオーバーロードされています。

4

4 に答える 4

0

->クラスの演算子のオーバーロードの呼び出しです。

于 2013-06-08T13:37:16.177 に答える